全局頁(yè)面狀態(tài)欄樣式白色Light
之前項(xiàng)目中是全局的白色狀態(tài)欄樣式,可以在 plist文件中添加以下選項(xiàng),然后在Base控制器中寫一句代碼就可以實(shí)現(xiàn)全局狀態(tài)欄白色的狀態(tài)。
Plist
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
部分頁(yè)面狀態(tài)欄樣式白色Light
iOS 7之后, UIViewController有了一個(gè)新的方法:- preferredStatusBarStyle,可以讓用戶指定狀態(tài)欄風(fēng)格便贵。
但是我試了一下,卻不起作用冗荸。后來(lái)才知道原因:這個(gè)方法只有在ViewController不包含在UINavigationController中時(shí)才起作用承璃。大部分情況下,ViewController不會(huì)單獨(dú)使用蚌本,一般都會(huì)嵌套在UINavigationController中的盔粹。
所以可以寫一個(gè)UINavigationController的擴(kuò)展,覆蓋其默認(rèn)實(shí)現(xiàn)程癌,返回最上面的ViewController的preferredStatusBarStyle舷嗡。
OC
//UINavigationController+StatusBar.h
#import <UIKit/UIKit.h>
@interface UINavigationController (StatusBar)
-(UIStatusBarStyle)preferredStatusBarStyle;
@end
//UINavigationController+StatusBar.m
#import "UINavigationController+StatusBar.h"
@implementation UINavigationController (StatusBar)
- (UIStatusBarStyle)preferredStatusBarStyle { return [[self topViewController] preferredStatusBarStyle];
}
@end
swift
extension UINavigationController { override public func preferredStatusBarStyle() -> UIStatusBarStyle { return self.topViewController.preferredStatusBarStyle() }}
然后哪需要哪引入U(xiǎn)INavigationController+StatusBar.h頭文件,此時(shí)preferredStatusBarStyle就起作用了嵌莉。如果你用Swift进萄,增加了extension就完成了。
轉(zhuǎn)自這里我這里只是備注一下。感謝原文作者