tagtraum
tagtraum

Reputation: 515

iOS 7 UINavigationBar not hidden while view transition

I have view controller transition like vc1 -> vc2 -> vc1. And I need the UINavigationBar be hidden in vc1, and showing in vc2.

I do the following:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.navigationController.navigationBarHidden = YES;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];

    self.navigationController.navigationBarHidden = NO;
}

In iOS6, it works fine. But in iOS7, when I back to vc2 from vc1, the navigation bar is not hidden but moved upward behind the status bar, the bar got hidden after the transition animation finished.

How can I really hide the nav bar?

Upvotes: 4

Views: 834

Answers (2)

TamilKing
TamilKing

Reputation: 1643

In VC2 Controller put this in - viewDidLoad

[self.navigationController setNavigationBarHidden:NO];

In VC1 controller put this in -ViewDidLoad

[self.navigationController setNavigationBarHidden:YES];

then VC1 add this also

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES];
}

I hope it will be helpful for you...

Upvotes: 0

Vinodh
Vinodh

Reputation: 5268

Try like this:

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES];  
}

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];

    [self.navigationController setNavigationBarHidden:NO]; 
}

or try like this :

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    [super viewWillDisappear:animated];
}

Upvotes: 4

Related Questions