ViewWillAppear仅适用于显示导航栏一次

时间:2014-07-03 00:47:52

标签: ios objective-c uitableview storyboard uinavigationbar

我正在从UITableView导航到普通的ViewController。

我正在显示这样的navigationBar:

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:NO];
}

我第一次在UITableView中遇到一行时,导航栏出现了,但第二次它仍然隐藏。这不是预期的行为,因为每次视图显示时viewWillAppear都应该工作。

为什么第二次查看视图时隐藏了navigationBar?

1 个答案:

答案 0 :(得分:0)

这是因为您在表视图的viewWillAppear中隐藏了导航栏。因此它将隐藏其他推动的视图控制器。因此,为了摆脱你必须取消隐藏导航栏视图确实消失了表视图。所以它将以所需的方式工作。

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.hidden = YES;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.navigationController.navigationBar.hidden = NO;
}