2010-01-16 58 views
2

我具有其中根视图不经由
[[self navigationController] setNavigationBarHidden:YES animated:NO];topBar相当于隐藏底部边框当推送?

我推到这并不需要显示导航栏的视图中显示在顶部导航栏一个UINavigationController,目前我使用的上面的方法来显示它,然后在弹出视图时再隐藏它。这导致了一些奇怪的故障,我不想继续。

编辑:为了澄清,现在我在推送的视图中使用[[self navigationController] setNavigationBarHidden:NO animated:NO];,导航条出现在传出视图和新视图中,而且看起来相当混乱。这里是什么目前发生的事情: alt text

而且我想什么: alt text

相反,我想什么是导航栏已经显示,而视图被推动,而不是根查看,很像hidesBottomBarWhenPushed属性的行为。

任何人都可以在正确的方向指向我吗?

回答

1

,如果你把什么:

[[self navigationController] setNavigationBarHidden:NO animated:NO]; 
在你推视图控制器的 -viewDidLoad方法

+0

不是我想要的:( 查看上面的图片 – kbanman 2010-01-17 06:02:22

+0

其实只是设置你的答案是动画:YES是诀窍,我会把它给你。 – kbanman 2010-01-17 17:01:45

1

我注意到,如果允许它们进行动画处理,那么过渡更光滑(没有奇怪的闪烁)。将你的动画标志切换到YES,看看是否顺利。

[[self navigationController] setNavigationBarHidden:YES animated:YES]; 
[[self navigationController] setNavigationBarHidden:NO animated:YES]; 

另外,我取消选中“显示导航栏”中的IB检查我的导航控制器复选框,而不是在代码中这样做。这样,从xib解冻时,它的默认状态是隐藏的。代码应该有效地做同样的事情,但它可能值得尝试,因为我没有在实现相同的事情时描述的问题。

0

2条评论。我正在做同样的事情,我同意在动画时它看起来更好。你也应该在viewWillAppear或viewDidAppear中调用它。我个人使用viewDidAppear和动画:是,并认为看起来不错。

由于您正在设置应用程序级别设置,因此您需要确保在正确的时间调用它以避免出现问题。