导航栏设置为不可见,但单击后退按钮时会出现

时间:2012-03-21 20:16:10

标签: objective-c ios uinavigationcontroller uinavigationbar

如标题所示,根视图是我的导航控制器,它被设置为不可见,它在启动时。但是,如果我将视图推入堆栈然后弹出它,则会出现导航栏。

有关为何以及如何纠正这种情况的任何线索?

1 个答案:

答案 0 :(得分:1)

每当您的控制器view出现(或消失)在屏幕上时,您需要隐藏它。这是必要的,因为条保持不同的推/弹操作之间的状态。例如,如果您将其隐藏在第一个控制器中的viewDidLoad内,而在第二个控制器中将其设置为可见,则当您弹出第二个控制器时,该栏将保留您设置的最后一个状态。

例如,覆盖viewWillAppearviewWillDisappear方法并隐藏/取消隐藏栏。

- (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];    
}
相关问题