0

我有一个主视图控制器,它列出了一堆项目,当他们点击其中一个项目时,它会将它们切换到下一个视图。但是,在下一个视图中,我不希望导航栏在那里,我只希望它在第一个视图中(我使用 UIToolBar 作为导航栏,有点像在 iBooks 中)。

我究竟该如何实现这一目标?如果我从导航控制器中完全删除主视图控制器(有效地取消嵌入),我可以有选择地实现导航栏,但是这个解决方案不允许 segues,所以它不好。

我的另一个解决方案是调用第二self.navigationController.navigationBarHidden = YES;viewDidAppear视图,但是这样,我在情节提要中添加的 UIToolBar 被推到尚未隐藏的导航栏下,然后当它被隐藏时,它就会消失并且UIToolBar“掉下来”,这对用户来说是一个非常严重的影响。

获得这种效果的最佳方法是什么?

4

1 回答 1

1

最好的方法如下。在您viewWillAppear:的 UINavigationController 的第一个 (rootViewController) 中,您设置:

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

然后在你身上viewWillDisappear,你正好相反:

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

这种方式应该可以在用户没有任何“丑陋”的情况下工作。

于 2013-04-28T22:18:29.907 回答