0

我有一个主视图控制器列出了一堆物品,当他们点击其中一个物品时,它会将它们塞到下一个视图。但是,在下一个视图中,我不希望导航栏在那里,我只希望它在第一个视图中(我使用UIToolBar作为导航栏,类似in iBooks)。我在导航控制器层次结构中有视图控制器,但只需要第一个视图控制器上的导航栏 - 我该怎么做?

我该如何去实现这一目标?如果我完全从导航控制器中删除主视图控制器(有效地解除嵌入),我可以选择性地实现导航栏,但此解决方案不允许使用导航栏,因此它不是好的。

我其他的解决办法是要求self.navigationController.navigationBarHidden = YES;viewDidAppear第二视图,但是这一点,我在我的故事板添加UIToolBar的是,还没有被隐藏尚未导航栏下推,然后当它得到隐藏,它消失,UIToolBar“跌落”,这对用户来说是相当重要的影响。

要得到这种效果,最好的方法是什么?

回答

1

要做到这一点的最佳方法如下。在第一(RootViewController的),你viewWillAppear:您的UINavigationController,你设置:

-(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]; 
} 

这样,应该没有什么工作“丑”发生在用户身上。

+0

等待,黑色条出现在rootViewController中?如果是这样,它应该在那里根据你的问题,不是?您可以尝试使用上面发布的相同方法,但是在推送的其他视图控制器中使用了相同的方法...如果它有助于解决您的问题,请接受/提出回答。 – 2013-04-28 22:41:33

+0

我认为从概念上讲,在那里是有道理的,但从视觉上看,它看起来不太好,那么最好的方法是不要有这样的视觉障碍?我更喜欢导航栏在那里,直到它进入下一个视图,它不是。 – 2013-04-29 01:29:55

+0

此外,以前的酒吧并没有完全消失。当我用这种方法重新出现时,它会再次出现。 http://i.imgur.com/E38k7fV.png – 2013-04-29 03:33:33

相关问题