2013-10-12 108 views
2

我在狀態欄問題7

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque]; 

    RootViewController *rvc = [[[RootViewController alloc] init] autorelease]; 
    UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:rvc] autorelease]; 

    self.window.rootViewController = navController; 
    [self.window makeKeyAndVisible]; 
    return YES; 

} 

View controller-based status bar appearance is YES in plist file 

,當我推視圖控制器狀態欄尋找偉大返回。如下圖所示。

enter image description here

,但是當我提出modelviewcontroller它看起來如下。

enter image description here

我已經在視圖控制器的viewDidLoad方法其中我提出

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { 
    // iOS 7 
    navBar.frame = CGRectMake(navBar.frame.origin.x, 20, navBar.frame.size.width, 44); 
} 

我想在presentingmodelview以顯示黑色的狀態欄寫下面的代碼。但它沒有顯示。 我試過

基於視圖控制器的狀態欄外觀也不在plist文件 中,但它不起作用。

我的代碼在7.0以下的所有ios版本中運行良好,但在ios 7.0及更高版本中不能運行。

任何解決方案?如果有人沒有收到我的問題,請告訴我。

+0

在iOS 7默認狀態欄是透明的。 –

+0

所以你必須採取與高度20 UIImageview並設置背景顏色黑色。並在尺寸檢查器中將其設置爲增量值-20 –

回答

4

this question中找到了很好的解決方案。

1)設置到UIViewControllerBasedStatusBarAppearance NO在info.plist中(要停用具有視圖控制器調整狀態欄樣式,使我們可以通過使用UIApplicationstatusBarStyle方法設置狀態欄風格。)

2)在AppDelegate的應用程序:didFinishLaunchingWithOptions,請致電

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 
    [application setStatusBarStyle:UIStatusBarStyleLightContent]; 
    self.window.clipsToBounds =YES; 
    self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20); 

    self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height); 
} 
return YES;