【发布时间】:2012-03-21 20:16:09
【问题描述】:
正如标题所示,根视图是我的导航控制器,它被设置为不可见,它在启动时。但是,如果我将视图推送到堆栈然后弹出它,则会出现导航栏。
关于为什么以及如何纠正这种情况的任何线索?
【问题讨论】:
标签: objective-c ios uinavigationcontroller uinavigationbar
正如标题所示,根视图是我的导航控制器,它被设置为不可见,它在启动时。但是,如果我将视图推送到堆栈然后弹出它,则会出现导航栏。
关于为什么以及如何纠正这种情况的任何线索?
【问题讨论】:
标签: objective-c ios uinavigationcontroller uinavigationbar
每次您的控制器的view 出现(或消失)在屏幕上时,您都需要隐藏它。这是必要的,因为栏在不同的推送/弹出操作之间保持状态。例如,如果您在第一个控制器中将其设置为隐藏在 viewDidLoad 中,而在第二个控制器中将其设置为可见,则当您弹出第二个控制器时,该栏将保持您设置的最后一个状态。
例如覆盖 viewWillAppear 和 viewWillDisappear 方法并隐藏/取消隐藏那里的栏。
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
- (void) viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
【讨论】: