iOS開發之狀態欄隱藏(問題篇)

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方法來強制調用隱藏狀態欄的方法便可。

問題完美解決!

相關文章
相關標籤/搜索