如何设置导航栏颜色上 IOS 6/7

 我来答
哈哈哈啊啊的8
2016-12-28 · 超过18用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:14.3万
展开全部
状态栏的字体为黑色:UIStatusBarStyleDefault状态栏的字体为白色:UIStatusBarStyleLightContentAPP启动页状态栏颜色设置在info.plist添加Statusbarstyle,改变style值,就可以改变颜色,默认是Graystyle一、在info.plist中,将Viewcontroller-basedstatusbarappearance设置为NO,白色,YES,黑色如果Viewcontroller-basedstatusbarappearance为YES。则[UIApplicationsharedApplication].statusBarStyle无效。解决个别VC中状态栏字体颜色不同的法二、在appdelegate中:[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;三、在个别状态栏字体颜色不一样的vc中-(void)viewWillAppear:(BOOL)animated{[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleDefault;}-(void)viewWillDisappear:(BOOL)animated{[superviewWillDisappear:animated];[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;}用下面的方法:1、在vc中重写vc的preferredStatusBarStyle方法。-(UIStatusBarStyle)preferredStatusBarStyle{returnUIStatusBarStyleDefault;}2、在viewDidload中调用:[selfsetNeedsStatusBarAppearanceUpdate];但是,当vc在nav中时,上面方法没用,vc中的preferredStatusBarStyle方法根本不用被调用。原因是,[selfsetNeedsStatusBarAppearanceUpdate]发出后,只会调用navigationcontroller中的preferredStatusBarStyle方法,vc中的preferredStatusBarStyley方法跟本不会被调用。解决法有两个:方法一:设置navbar的barStyle属性会影响statusbar的字体和背景色。如下。//statusbar的字体为白色//导航栏的背景色是黑色。self.navigationController.navigationBar.barStyle=UIBarStyleBlack;//statusbar的字体为黑色//导航栏的背景色是白色,状态栏的背景色也是白色。//self.navigationController.navigationBar.barStyle=UIBarStyleDefault;方法二:自定义一个navbar的子类,在这个子类中重写preferredStatusBarStyle方法:MyNav*nav=[[MyNavalloc]initWithRootViewController:vc];self.window.rootViewController=nav;@implementationMyNav-(UIStatusBarStyle)preferredStatusBarStyle{UIViewController*topVC=self.topViewController;return[topVCpreferredStatusBarStyle];}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式