我有一个iOS应用程序,在UINavigationController中设计。但是,其中一个推送的视图控制器需要一个全屏视图,而顶部没有导航栏。 (要回来,只有一个小的圆形按钮)。但是,我尝试“隐藏”导航栏的任何方法(navigationCtl.navigationBar.hidden = TRUE)都会给我留下难看的瑕疵 - 在推送视图之前调用它(在viewDidLoad或viewWillAppear中)导致前面的视图控制器栏到幻灯片白色就像幻灯片左侧动画开始一样。同样,在viewDidAppear中调用它会在第二个视图的顶部留下一个白色条,以及几个向下推的子视图。有没有什么方法可以像往常一样让新视图滑过,但是当它结束时,顶部根本没有导航栏?
请注意,为了帮助Google,基本上这里的问题是:
如果两个UIViewControllers顶部有一个导航栏,另一个顶部没有导航栏,如何在两个UIViewControllers之间进行动画处理。那么,如何从带导航栏的UIViewController导航到没有导航栏的导航栏 - 避免可怕的闪烁。
令人惊讶的答案在下面由Ev ...很棒。
答案 0 :(得分:10)
给它一个旋转,看看它是如何为你工作的。
在viewWillAppear中的目标视图控制器中
- (void)viewWillAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
它实际上有很酷的效果,可能很有用。在viewWillAppear中,一切都在显示视图之前发生,因此它会带走奇怪的工件。
好吧