的iOS 7 Transition Guide提供一個很好的提示如何使用與[self setNeedsStatusBarAppearanceUpdate];
如何使用導航欄在模態視圖中更改iOS 7中的UIStatusBarStyle?
這工作正常,在單個視圖應用
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
一起動態地更改UIStatusBarStyle
在UIViewController
。但是,我現在試圖將模式視圖中的UIStatusBarStyle
更改爲UIStatusBarStyleLightContent
。有一個MainViewController
,它轉入ModalViewController
,它本身嵌入在NavigationController
中。 ModalViewController
已將其代表設置爲MainViewController
。
我試着打在ModalViewController
與該類下面的方法一起[self setNeedsStatusBarAppearanceUpdate];
無效果:
// In ModalViewController.m
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
我也試着撥打[self setNeedsStatusBarAppearanceUpdate];
在MainViewController
上prepareForSegue: sender:
方法與- (UIStatusBarStyle)preferredStatusBarStyle {}
條件返回UIStatusBarStyleLightContent
當模態視圖呈現 - 但也沒有效果。
如何更改模態視圖中的UIStatusBarStyle?
編輯:後更新:我需要提及的是,ModalViewController
嵌入在NavigationController
與NavigationBar
。用NavigationBar
設置爲隱藏到[self setNeedsStatusBarAppearanceUpdate];
的上方呼叫ModalViewController
工作正常。但是,當酒吧可見時不會。
你在ModalViewController實現中調用了[self setNeedsStatusBarAppearanceUpdate]的位置? – Moxy
'viewDidLoad'方法 – FrankZp
在'-viewWillAppear:'中怎麼樣? – Moxy