请帮我在根视图中隐藏导航控制器。我找到了[navigationController setNavigationBarHidden:YES]
在我需要的每个视图控制器中编写的解决方案。好吧,它只是第一次工作:我运行应用程序,在根视图中我没有导航,然后我转到第二个视图 - 出现导航,好的。但是然后我在导航控制器中按“返回”,从根视图导航并没有消失。我与xib一起工作。
问问题
6646 次
5 回答
21
在根视图控制器
-(void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:YES animated:NO];
}
在第二个视图中(在 rootViewController 旁边)
-(void)viewDidLoad:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
于 2013-10-17T09:02:17.153 回答
0
试试这个
在所有视图控制器上使用这行代码
[navigationController setNavigationBarHidden: YES animated:YES];
如果不需要动画,您可以执行动画:NO 并将此代码添加到 viewDidLoad 或将其放入 viewWillAppear 或 viewDidAppear。
在你的情况下
[navigationController setNavigationBarHidden:YES animated:NO];
在您的 rootViewController 上,以及
[navigationController setNavigationBarHidden:NO animated:YES];
在您的其他视图控制器上
于 2013-10-17T08:51:33.230 回答
0
我相信您正在使用标签栏控制器。
您的代码适用于第一个视图控制器,因为您只有那里的代码。对于第二个视图控制器,它是默认的,因此对于第二个视图控制器,您会看到导航栏。
要隐藏所有视图控制器的导航栏,请将隐藏代码放入所有视图控制器 viewWillAppear
-(void)viewWillAppear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:YES animated:NO];
}
于 2013-10-17T09:22:53.173 回答
0
隐藏导航栏所有视图控制器的视图将出现方法。
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[navigationCOntroller setNavigationBarHidden:YES animated:animated];
}
于 2013-10-17T08:57:33.653 回答
0
对于Swift开发者
斯威夫特 4.2
RootViewController.swift
class RootViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
}
NextViewController.swift
class NextViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.setNavigationBarHidden(false, animated: false)
}
}
于 2018-08-21T13:10:42.890 回答