无法在我执行popViewControllerAnimated时显示导航栏

时间:2012-12-07 10:02:07

标签: objective-c ios cocoa-touch uinavigationcontroller

我有两个viewControllers,我正在从FirstView导航到SecondView,

将SecondView推送到导航控制器。因为我不想要导航栏

要在SecondView中显示,我执行以下操作

self.navigationController.navigationBar.hidden=YES;

然后我从第二个视图返回到FirstView,如下所示

[self.navigationController popViewControllerAnimated:YES];

但是现在导航栏也没有显示在FirstView中,因为我将它隐藏在

SecondView。我在FirstView中尝试以下内容

-(void)viewWillAppear:(BOOL)animated
{

       [super viewWillAppear:YES];

       self.navigationController.navigationBar.hidden=NO;
}

5 个答案:

答案 0 :(得分:6)

请改为尝试:

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

答案 1 :(得分:5)

您可以设置initWithNib或viewDidLoad方法并运行它

-(void)viewDidLoad
 {
      self.navigationController.navigationBar.hidden=NO;
 }

答案 2 :(得分:3)

尝试在弹出第二个视图控制器之前显示navigationBar,如下所示:

self.navigationController.navigationBar.hidden=NO;
[self.navigationController popViewControllerAnimated:YES];

答案 3 :(得分:1)

使用以下方法尝试:

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:YES];
    self.navigationController.navigationBar.hidden=NO;
}

但对我而言,它应该在viewWillAppear中工作。

答案 4 :(得分:1)

将以下代码放在第二个视图中

-(void)viewWillDisappear:(BOOL)animated{
self.navigationController.navigationBarHidden=NO;

}