如标题所示, Root View 是我的导航 Controller ,它被设置为不可见,即在启动时。但是,如果我将 View 插入堆栈然后弹出它,则会出现导航栏。
关于为什么以及如何补救这种情况有任何线索吗?
最佳答案
每次 Controller 的 View
在屏幕上出现(或消失)时,您都需要隐藏它。这是必要的,因为栏维持不同的推/弹出操作之间的状态。例如,如果您将其设置为隐藏在第一个 Controller 中的 viewDidLoad
中,而在第二个 Controller 中将其设置为可见,则当您弹出第二个 Controller 时,栏将保持您设置的最后状态。
例如覆盖 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];
}
关于objective-c - 导航栏设置为不可见,但单击后退按钮时会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9812165/