日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UINavgationController中覆写preferredStatusBarStyle方法不执行的问题

發(fā)布時間:2024/8/26 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UINavgationController中覆写preferredStatusBarStyle方法不执行的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad]; }-(UIStatusBarStyle)preferredStatusBarStyle {return UIStatusBarStyleDefault; }@end

如果viewController不是在 UINavgationController中,那么以上代碼可以把狀態(tài)欄文本顏色設(shè)置為白色,但是如果 viewController是添加到導(dǎo)航上的,你會發(fā)現(xiàn)上面代碼達(dá)不到你想要的效果,狀態(tài)欄文本顏色是黑色的!?


這是為什么??
經(jīng)過查找資料,才知道原來是這么一回事:?


*UINavigationController不會將 preferredStatusBarStyle方法調(diào)用轉(zhuǎn)給它的子視圖,而是由它自己管理狀態(tài),而且它也應(yīng)該那樣做.因為UINavigationController 包含了它自己的狀態(tài)欄?


因此就算 UINavigationController中的viewController 實現(xiàn)了 preferredStatusBarStyle方法 也不會調(diào)用?


那 UINavigationController是怎么決定 該返回 UIStatusBarStyleLightContent 還是 UIStatusBarStyleDefault的呢? 它是基于它的 UINavigationBar.barStyle屬性.默認(rèn)(UIBarStyleDefault)的是黑色文本的狀態(tài)欄 而 UIBarStyleBlack是設(shè)置為白色文本的狀態(tài)欄*?


也就是說,如果viewController是在導(dǎo)航中的,想要改變狀態(tài)欄文本顏色,那么需要通過代碼:

?

//將status bar 文本顏色設(shè)置為白色 self.navigationController.navigationBar.barStyle = UIBarStyleBlack; //將status bar 文本顏色設(shè)置為黑色 ,默認(rèn)就是黑色 self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

?

另外,如果viewController在導(dǎo)航中,還想通過 preferredStatusBarStyle 方法設(shè)置狀態(tài)欄文本顏色,那就只能隱藏導(dǎo)航欄了:

//隱藏導(dǎo)航欄后 系統(tǒng)會調(diào)用 preferredStatusBarStyle 方法 self.navigationController.navigationBarHidden = YES;

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/yipingios/p/5530921.html

總結(jié)

以上是生活随笔為你收集整理的UINavgationController中覆写preferredStatusBarStyle方法不执行的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。