發(fā)現(xiàn)在帶有navigationController的視圖中,如果通過(guò)重寫preferredStatusBarStyle是達(dá)不到效果的,此方法并不會(huì)執(zhí)行。
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
通過(guò)度娘得知:
UINavigationController不會(huì)將 preferredStatusBarStyle方法調(diào)用轉(zhuǎn)給它的子視圖,而是由它自己管理狀態(tài),而且它也應(yīng)該那樣做.因?yàn)閁INavigationController 包含了它自己的狀態(tài)欄 。哪如何改變狀態(tài)來(lái)呢?
//將status bar 文本顏色設(shè)置為白色
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
//將status bar 文本顏色設(shè)置為黑色 ,默認(rèn)就是黑色
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
另外,如果viewController在導(dǎo)航中,還想通過(guò) preferredStatusBarStyle 方法設(shè)置狀態(tài)欄文本顏色,那就只能隱藏導(dǎo)航欄了:
//隱藏導(dǎo)航欄后 系統(tǒng)會(huì)調(diào)用 preferredStatusBarStyle 方法
self.navigationController.navigationBarHidden = YES;