状态栏与导航栏重叠

时间:2013-11-26 09:33:30

标签: iphone uinavigationcontroller ios7 autolayout statusbar

我在我的应用程序中通过代码添加导航控制器。所有其他的工作正常,但我的导航栏与状态栏重叠。我尝试添加

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone; 

但它不起作用。

我导航控制器中的其他控制器只在xib中,而不是故事板。 请帮忙。

2 个答案:

答案 0 :(得分:1)

我使用以下代码解决了问题(如suggested by Tacettin Özbölük):

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
    UIView *addStatusBar = [[UIView alloc] init];
    addStatusBar.frame = CGRectMake(0, 0, 320, 20);
    addStatusBar.backgroundColor = [UIColor colorWithRed:0.973 green:0.973 blue:0.973 alpha:1]; //change this to match your navigation bar
    [self.window.rootViewController.view addSubview:addStatusBar];
}

答案 1 :(得分:1)

如果您真的不希望导航栏变为半透明,那么请使用此代码,您的问题将得到解决:

self.navigationController.navigationBar.translucent = NO;