2013-11-01 38 views
0

當有額外的屏幕(最多2個)時,我創建一個新窗口。每個窗口在不同的屏幕上顯示不同的內容。外部顯示窗口影響主屏幕

問題出在iOS7下:創建並顯示該外部窗口使狀態欄在第一個窗口中可見,這也是主窗口。然後,系統添加一些空間(20點)來重新排列頂部欄和一些視圖。它不適合我,因爲它是一個自定義欄。

爲什麼會發生這種情況,我該如何阻止系統添加狀態欄?

這是有問題的代碼:

- (void) handleScreenConnectNotification:(NSNotification*)notification 
{ 
     NSLog(@"screens=%@ _secondWindow = %@",[UIScreen screens], _secondWindow); 
     if ([[UIScreen screens] count] > 1) { 
      // Associate the window with the second screen. 
      // The main screen is always at index 0. 
      UIScreen * secondScreen = [[UIScreen screens] objectAtIndex:1]; 
      CGRect screenBounds = secondScreen.bounds; 

      _secondWindow = [[UIWindow alloc] initWithFrame:screenBounds]; 
      _secondWindow.screen = secondScreen; 

      _secondWindow.hidden = NO; 
     } 
} 

我曾試圖改變_secondWindow的框架,以更小的面積。不解決問題。

要處理的狀態欄,應用程序配置這樣 根據應用屬性列表:查看基於控制器的狀態欄外觀= YES
我添加爲每個視圖此代碼,我不希望顯示在狀態欄:

- (BOOL)prefersStatusBarHidden 
{ 
    return YES; 
} 

回答

1

因爲您提到了「基於視圖控制器的狀態欄外觀」 - 還嘗試將「狀態欄最初隱藏」設置爲true。

<key>UIStatusBarHidden</key> 
<true/> 
<key>UIViewControllerBasedStatusBarAppearance</key> 
<false/> 
+1

謝謝兄弟!訣竅是設置UIStatusBarHidden = true – subzero

0

要正確處理您不希望最初隱藏狀態欄的情況,請在第二個窗口中提供一個rootViewController。這個rootViewController必須實現 - (BOOL)prefersStatusBarHidden。