2011-12-23 76 views
6

有些用戶報告說iOS 5有時會顯示狀態欄。即使UIStatusBarHidden爲YES,如何防止iOS 5顯示狀態欄?

在我的Info.plist中,UIStatusBarHidden鍵是YES,我從來不會在代碼中弄亂狀態欄。

我能做些什麼來解決這個問題?

+0

我剛剛開始發展與SDK 5.0,(目標4.0)的新項目,並有同樣的問題。我在plist中設置了UIStatusBarHidden = YES,或者調用[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];無論如何,狀態欄會出現在每個子屏幕上。如果您找到工作解決方案,請通知我。 – 2012-01-18 16:52:03

+0

看到我下面的回覆。我確實設法解決它。 – 2012-01-19 07:04:02

回答

6

在Info.plist中的條目應足以隱藏它,但你可以嘗試用編程方式這樣做:

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; 

當你的應用程序啓動。

+4

setStatusBarHidden:動畫: (不推薦在iOS 3.2中使用setStatusBarHidden:withAnimation:改爲) – 2012-01-18 16:48:57

+0

@KostiantynSokolinskyi使用setStatusBarHidden:YES代替 – Dmitry 2012-10-29 22:24:30

1

您是否使用顯示狀態欄的第三方框架?

+0

完全沒有。只是我自己的代碼。 – dontWatchMyProfile 2011-12-23 12:25:57

6

我覺得上面的方法在iOS5中已過時,我會用這個來代替:

[[UIApplication sharedApplication]setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 
2

找到了解決辦法!

我確實在plist中設置了屬性,但在將視圖控制器推入導航堆棧或打開UIImagePickerController後仍然可以看到狀態欄: (我使用Xcode 4.2(SDK 5.0)和iOS 5.0.1)。

這是(把每個視圖控制器代碼不需要狀態欄是可見的):

設置self.wantsFullScreenLayout = YES; 在

- (id)initWithNibName: (NSString*)nibNameOrNil bundle: (NSBundle*)nibBundleOrNil 

呼叫

[[UIApplication sharedApplication] setStatusBarHidden: YES withAnimation: UIStatusBarAnimationNone]; 

- (void)viewWillAppear: (BOOL)animated 

然後,它工作在通過導航堆棧推控制器以及使用的UIImagePickerController(二者拍攝的照片或取消)的情況下。

希望這會有所幫助。

2

xcode 4.5給你的檢查選項隱藏狀態欄摘要頁面

  1. 去到目標項目。
  2. 打開sumaary然後檢查隱藏狀態欄選項..