1、基本應用app
相信基本的隱藏辦法網上不少,這裏只簡單說明一下框架
1⃣️改變全局狀態欄spa
1.在項目的Info.plist文件裏設置UIViewControllerBasedStatusBarAppearance爲NO。即更改成StatusBar的狀態不隨UIViewController的不一樣而不一樣code
2.[[UIApplication sharedApplication]setStatusBarHidden:YES];
blog
2⃣️交由控制器管理it
1.在項目的Info.plist文件裏設置UIViewControllerBasedStatusBarAppearance爲YESio
2.在控制器中實現下面的方法class
- (BOOL)prefersStatusBarHidden { return YES; }
2、出現的問題sed
我當時出現的問題是上述方法的2⃣️沒法隱藏我想要隱藏的那個控制器的狀態欄,苦尋好久,終於在一次吃飯當時,想通可能問題出在什麼地方了date
單獨設置的viewController必須爲最高級別的viewController,(every top-level view controller in your app (other than a standard UIKit container view controller) )中調用,這是蘋果官方告訴咱們的。可是什麼是最高級呢?
其實就是:咱們的控制器不能是被包含在其餘的控制器中的(導航控制器的話須要是根控制器),個人項目由於框架使用了SWRevealViewController。因此若是我想在裏面隱藏某個控制器的狀態欄,就必須隱藏在view即將出現的時候,隱藏這個控制器的狀態欄,在view即將消失的時候,再使它出現。
以後我給這個框架增長了一個BOOL屬性,再調用setNeedsStatusBarAppearanceUpdate方法來強制調用隱藏狀態欄的方法便可。
問題完美解決!