我正在使用以下代码在detailViewController(我的第二个视图)中隐藏我的navigationBar, 当我从MasterViewController(我的第一个视图)中点击任何一个对象时,它工作得很好。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
但是,当我使用searchDisplayController过滤masterViewController中的表列表时 并从结果中点击任何对象,detailView中的navigationBar不会被隐藏...
如果我使用searchDisplayController,是否需要做额外的工作来隐藏navigationBar?
对于Debug,我在setNavigationBarHidden行上设置了断点:YES,即使是 我通过搜索结果转到detailViewController,应用程序命中行..
答案 0 :(得分:13)
- (void) viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
[self.navigationController setNavigationBarHidden:YES];
}
它有效。
答案 1 :(得分:0)
如果要隐藏导航栏,请在MainWindow xib中取消选中导航控制器的“显示导航栏”属性。
这将隐藏整个项目中的导航栏。如果要在任何控制器中显示导航栏,请在该控制器的ViewDidLoad方法中使用NavigationBar Hidden = NO。
答案 2 :(得分:0)
答案 3 :(得分:0)
此
- (void) viewWillLayoutSubviews
导致布局问题,所以我使用下面的代码。对我来说很好。
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO];
}