如何禁用某些ViewController的导航栏

时间:2014-03-09 19:35:35

标签: ios uinavigationcontroller

我使用以下方法在整个应用中禁用导航栏:

[navcontroller setNavigationBarHidden:YES animated:YES];

但是只能为一个ViewController禁用它吗?

2 个答案:

答案 0 :(得分:1)

当然可以。每当您输入视图控制器时,您都可以为该视图控制器启用或禁用(只需在[[self navigationController] setNavigationBarHidden:YES animated:YES]

期间调用viewWillAppear

答案 1 :(得分:0)

我找到的最好的解决方案是在第一个视图控制器中执行以下操作。

- (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];
}

当您按下堆栈上的下一个UIViewController时,这将导致导航栏从左侧(与下一个视图一起)动画,并在您按下时向左移动(与旧视图一起) UINavigationBar上的后退按钮。

请注意,这些不是委托方法,您要覆盖UIViewController的这些方法的实现,并且根据文档,您必须在实现的某个地方调用super的实现。

希望这可以解决您的问题。