UINavigationController没有导航栏?
我有一个通用的应用程序,并在iPad版本中使用UISplitViewController
来创build类似于邮件应用程序的界面。
我无法推送新的Detail视图,所以我决定使用UINavigationController
这样我就可以按需要推送和popup视图。 但是,我不想使用导航视图或工具栏。 但不pipe我做什么,我都无法隐藏导航栏。
我已经尝试在IB中取消选中“显示导航栏”,我也试过设置:
[self.navigationController setNavigationBarHidden:YES];
在viewDidLoad
/ viewDidAppear
/ viewWillAppear
。 我也尝试过在每一个将推动的意见。 没有任何工作
有什么我在这里失踪? 是否有可能没有工具栏或导航栏的UINavigationController
?
你应该能够做到以下几点:
self.navigationController.navigationBar.hidden = YES;
self.navigationController(显然)是UINavigationController的一个实例。 似乎为我工作,但我只是简单地testing它发布之前。
在Xcode 4.3.2中:
- select故事板中的导航控制器
- 在(右)工具面板中select属性检查器
-
在导航控制器类别下,您有两个checkbox:
[]显示导航栏
[]显示工具栏
为我工作…
如果你不需要导航栏,而且你想把内容调整到导航栏通常的位置,你应该使用
self.navigationController.navigationBarHidden = YES;
这给你一个这样的结果:
而self.navigationController.navigationBar.hidden = YES;
给你一个导航栏应该在的空间。 喜欢这个:
Swift 3以编程方式
self.navigationController.isNavigationBarHidden = true
要么
self.navigationController.navigationBar.isHidden = true
注意:我没有看到在iOS 10上testing这两种方法的区别。
斯威夫特4
我将它隐藏在视野里
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.isNavigationBarHidden = true; }
然后当你推一个segue时,你可以把它放回去(如果你想在下一个视图上有后退button)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { self.navigationController?.isNavigationBarHidden = false; }