一、基本應(yīng)用
相信基本的隱藏辦法網(wǎng)上很多转绷,這里只簡單說明一下
1??改變?nèi)譅顟B(tài)欄
1.在項目的Info.plist文件里設(shè)置UIViewControllerBasedStatusBarAppearance為NO。即更改為StatusBar的狀態(tài)不隨UIViewController的不同而不同
2.[[UIApplication sharedApplication]setStatusBarHidden:YES];
2??交由控制器管理
1.在項目的Info.plist文件里設(shè)置UIViewControllerBasedStatusBarAppearance為YES
2.在控制器中實現(xiàn)下面的方法
- (BOOL)prefersStatusBarHidden
{
? ? return YES;
}
二、出現(xiàn)的問題
我當時出現(xiàn)的問題是上述方法的2??無法隱藏我想要隱藏的那個控制器的狀態(tài)欄随闽,苦尋很久,終于在一次吃飯當時肝谭,想通可能問題出在什么地方了
單獨設(shè)置的viewController必須為最高級別的viewController,(every top-level view controller in your app (other than a standard UIKit container view controller) )中調(diào)用掘宪,這是蘋果官方告訴我們的。但是什么是最高級呢攘烛?
其實就是:我們的控制器不能是被包含在其他的控制器中的(導(dǎo)航控制器的話需要是根控制器)魏滚,我的項目因為框架使用了SWRevealViewController。所以如果我想在里面隱藏某個控制器的狀態(tài)欄坟漱,就必須隱藏在view即將出現(xiàn)的時候鼠次,隱藏這個控制器的狀態(tài)欄,在view即將消失的時候靖秩,再使它出現(xiàn)须眷。
之后我給這個框架增加了一個BOOL屬性,再調(diào)用setNeedsStatusBarAppearanceUpdate方法來強制調(diào)用隱藏狀態(tài)欄的方法即可沟突。
問題完美解決花颗!