导航栏不显示

Ale*_*ini 9 objective-c ios xcode5

我有这个问题:我有一个视图控制器(嵌入在导航控制器中),在执行操作后触发手动segue推新视图控制器,但是在新视图控制器中没有导航栏,因为在第一个控制器中我有实现了viewWillDisappear方法,如下所示:

StartViewController

- (void)viewWillDisappear:(BOOL)animated {
  // Hide the navigation bar just before the view disappear
  [[self navigationController] setNavigationBarHidden:YES animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

以下是IBAction中手动segue的代码:

[self performSegueWithIdentifier:@"tutorialSegue" sender:self];
Run Code Online (Sandbox Code Playgroud)

DestinationViewController

我试过这样的

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view.
    [[self navigationController] setNavigationBarHidden:NO animated:NO];
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,实际上在调试器中,我注意到navigationcontroller等于nil,我只是无法弄清楚原因.

hyb*_*ttt 11

如果你想让StartViewController隐藏导航栏,并使用DestinationViewController来显示它:向-(void)viewWillAppear:方法添加相应的代码.

StartViewController:

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[self navigationController] setNavigationBarHidden:YES animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

DestinationViewController:

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[self navigationController] setNavigationBarHidden:NO animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

如果您希望两个视图控制器都有导航栏,只需删除包含的所有行 setNavigationBarHidden: