2014-02-13 48 views
3

我在我的应用程序中使用导航控制器。除了在一个控制器中,大多数情况下,所有控制器的导航栏隐藏。当我从那个控制器弹出时,导航栏显示很奇怪,关于导航栏的底部空间被留下。另外,当我开始编辑或做一些选择或其他事情时,导航栏变得正常,空白空间被删除,但它仍然存在,直到我什么也没做。我使用的Xcode 5,而这些发生在iOS中5没有测试鉴于双方的iOS 6和iOS 7没有消失,该控制器我Xcode 5中的导航栏问题

self.navigationController.navigationBar.hidden = FALSE; 
[self.navigationController setNavigationBarHidden:NO]; 

同样鉴于将出现在其他控制器的我写的

self.navigationController.navigationBar.hidden = FALSE; 
[self.navigationController setNavigationBarHidden:NO]; 

在这两个视图自动布局是错误的,因为我需要在不同的条件下动态地改变框架。请帮忙。

+2

你尝试添加[self.navigationController setNavigationBarHidden:NO];在viewWill中将显示控制器与隐藏的导航栏一起显示? –

+0

是的写在两个视图将消失和看法确实消失 – Dhara

回答

3

使用下面的代码。

- (void) viewWillAppear:(BOOL)animated { 
[super viewWillAppear:animated]; 
[self.navigationController setNavigationBarHidden:YES animated:animated]; 
} 

- (void) viewWillDisappear:(BOOL)animated { 
[super viewWillDisappear:animated]; 
[self.navigationController setNavigationBarHidden:NO animated:animated]; 
} 

改用willAppear/Disappear代替。

+0

没有底部空间仍然 – Dhara

0

在我的情况下,我通过设置导航栏视图的背景颜色删除了该空白区域。像

[[[self navigationController] view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];