Xcode 5中的导航栏问题

时间:2014-02-13 09:28:38

标签: ios iphone uinavigationcontroller uinavigationbar

我在我的应用程序中使用导航控制器。除了一个控制器外,大多数控制器的导航栏都隐藏为false。当我从该控制器弹出时,导航栏显示奇怪,左侧导航栏的底部空间。此外,当我开始编辑或做一些选择或其他东西时,导航栏变得正常,空白空间被删除,但它一直保持到我什么都不做。我正在使用Xcode 5,这些都发生在iOS 6和ios 7中,未在iOS 5中测试过。在视图中我做的控制器消失了

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

另外在视图中会出现我写的另一个控制器

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

在视图中,自动布局都是假的,因为我需要在不同条件下动态更改帧。请帮忙。

2 个答案:

答案 0 :(得分: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代替。

答案 1 :(得分:0)

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

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