UINavgationController中覆寫preferredStatusBarStyle方法不執(zhí)行的問題

*UINavigationController不會將 preferredStatusBarStyle方法調用轉給它的子視圖,而是由它自己管理狀態(tài),而且它也應該那樣做.因為UINavigationController 包含了它自己的狀態(tài)欄

因此就算 UINavigationController中的viewController 實現了 preferredStatusBarStyle方法 也不會調用

那 UINavigationController是怎么決定 該返回 UIStatusBarStyleLightContent 還是 UIStatusBarStyleDefault的呢? 它是基于它的 UINavigationBar.barStyle屬性.默認(UIBarStyleDefault)的是黑色文本的狀態(tài)欄 而 UIBarStyleBlack是設置為白色文本的狀態(tài)欄*


也就是說,如果viewController是在導航中的,想要改變狀態(tài)欄文本顏色,那么需要通過代碼:

//將status bar 文本顏色設置為白色

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

//將status bar 文本顏色設置為黑色 ,默認就是黑色

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;


另外,如果viewController在導航中,還想通過 preferredStatusBarStyle 方法設置狀態(tài)欄文本顏色,那就只能隱藏導航欄了:

//隱藏導航欄后 系統(tǒng)會調用 preferredStatusBarStyle 方法

self.navigationController.navigationBarHidden = YES;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容