前言
在iOS開發(fā)中狀態(tài)欄字體顏色有兩種,即黑色(UIStatusBarStyleDefault)和白色(UIStatusBarStyleLightContent)。本文記錄下如何設(shè)置狀態(tài)欄字體顏色為白色(前提是有導(dǎo)航控制器包含)。
1.APP所有界面的狀態(tài)欄字體顏色都為白色
系統(tǒng)默認(rèn)狀態(tài)欄字體顏色為黑色殖氏,那么如何改成白色呢附井?
a.需要設(shè)置View controller-based status bar appearance為NO,
b.設(shè)置status bar style 為UIStatusBarStyleLightContent。
2.APP某些界面狀態(tài)欄字體顏色為白色
a.需要設(shè)置View controller-based status bar appearance為YES,系統(tǒng)默認(rèn)為YES可不設(shè)置
設(shè)置status bar style 為UIStatusBarStyleDefault远搪,系統(tǒng)默認(rèn)為default可不設(shè)置
b.自定義一個(gè)基類導(dǎo)航控制器重寫preferredStatusBarStyle方法
導(dǎo)航控制器.m文件
- (UIStatusBarStyle)preferredStatusBarStyle
{
UIViewController* topVC = self.topViewController;
return [topVC preferredStatusBarStyle];
}
iOS提供了preferredStatusBarStyle方法給控制器來控制狀態(tài)欄的顏色,但是由于導(dǎo)航控制器的存在逢捺,直接在控制器中寫這個(gè)方法是不會(huì)執(zhí)行的谁鳍,因此需要在導(dǎo)航控制器中重寫這個(gè)方法,讓導(dǎo)航控制器的棧頂控制器來執(zhí)行這個(gè)方法蒸甜。
c.在需要設(shè)置的控制器中添加preferredStatusBarStyle方法
控制器.m文件棠耕,用上面的基類導(dǎo)航控制器包含這個(gè)控制器
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}