閱讀了所有建議、嘗試了一些方法之后,我總結出如下幾步可以對特定的viewcontrollers有效:
第一步:
打開info.plist文件,插入一個新的鍵,叫做“View controller-based status bar appearance”設置為NO
第二步(只是解釋,不需要實現(xiàn)):
一般情況下我們把下面的代碼放到AppDelegate的application(_:didFinishLaunchingWithOptions:) 方法中,
UIApplication.sharedApplication().statusBarStyle = .LightContent
但這會影響所有ViewControllers的StatusBarStyle。
所以,如何對特定ViewControllers有效-最后一步:
打開你想改變StatusBarStyle的viewcontroller文件,把下面的代碼放到viewDidLoad()里,
UIApplication.sharedApplication().statusBarStyle = .LightContent
同樣,在那個特定的viewController里實現(xiàn)viewWillDisappear()方法,放入下面的幾行代碼,
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}```
這一步會首先改變特定的viewcontroller的statusBarStyle,然后在特定viewcontroller消失的時候改變回默認。不實現(xiàn)viewWillDisappear()會永久改變StatusBarStyle的值為新定義的UIStatusBarStyle.LightContent。