小編給大家分享一下如何解決iOS7里導航控制器中子控制器設置StatusBar狀態失效的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
第一種方式:全局控制StatusBar
1. 在項目的Info.plist文件里設置UIViewControllerBasedStatusBarAppearance為NO。
2. 使用[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];方法設置顏色。
第二種方式:基于控制器的方式控制StatusBar
1. 在項目的Info.plist文件里設置UIViewControllerBasedStatusBarAppearance為YES。
2.在各個UIViewController里分別控制狀態欄的顏色和狀態。
通過在控制器里實現以下方法來設置狀態欄的顏色狀態
- (UIStatusBarStyle)preferredStatusBarStyle
- (BOOL)prefersStatusBarHidden
目前只有兩種顏色可選:
UIStatusBarStyleLightContent - 白色字
UIStatusBarStyleDefault - 黑色字
-------------------------
使用第二種方式的問題是,如果一個控制器在UINavigationController內,則上述的控制StatusBar的方法沒有被調用。
解決辦法:讓UINavigationController實現- (UIViewController *)childViewControllerForStatusBarStyle方法。將頂層的控制器返回。這樣就可以了。
可以寫一個UINavigationController的category,實現該方法。包含到項目里。
- (UIViewController *)childViewControllerForStatusBarStyle
{
return self.topViewController;
}
以上是“如何解決iOS7里導航控制器中子控制器設置StatusBar狀態失效的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。