我有一个通用应用程序,在iPad版本上我使用UISplitViewController
创建类似于Mail应用程序的界面。
我在推送新的详细信息视图时遇到了问题,因此我决定使用UINavigationController
,因此我可以根据需要推送和弹出视图。但是,我不想使用导航视图或工具栏。但无论我做什么,我都无法隐藏导航栏。
我在IB中尝试取消选中“显示导航栏”,我也尝试过设置:
[self.navigationController setNavigationBarHidden:YES];
在viewDidLoad
/ viewDidAppear
/ viewWillAppear
中。我也在每个将要推送的视图中尝试过它。什么都行不通。
这里有什么我想念的吗?是否有UINavigationController
没有工具栏或导航栏?
答案 0 :(得分:183)
您应该能够执行以下操作:
self.navigationController.navigationBar.hidden = YES;
其中self.navigationController(显然)是UINavigationController的一个实例。似乎对我有用,但我在发布之前只对其进行了简要的测试。
答案 1 :(得分:39)
在Xcode 4.3.2中:
在导航控制器类别下,您有两个复选框:
[]显示导航栏
[]显示工具栏
为我工作......
答案 2 :(得分:39)
如果您不想导航栏,并且希望将内容调整到导航栏通常所在的位置,则应使用
self.navigationController.navigationBarHidden = YES;
这会给你一个这样的结果:
self.navigationController.navigationBar.hidden = YES;
为您提供了navigationBar所在的空间。像这样:
答案 3 :(得分:7)
Swift 4
我将它隐藏在viewWillAppear
中 override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.isNavigationBarHidden = true;
}
然后你可以在推动一个segue时把它放回去(如果你想在下一个视图上有后退按钮)
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
self.navigationController?.isNavigationBarHidden = false;
}
答案 4 :(得分:3)
self.navigationController.isNavigationBarHidden = true
或
self.navigationController.navigationBar.isHidden = true
注意:我没有看到在iOS 10上测试这两种方法的区别。
答案 5 :(得分:0)
所有这些答案仍然在状态栏的顶部保留一个空格-添加此行也将其删除:
navController.navigationBar.isHidden = true
navController.accessibilityFrame = CGRect.zero