假设我们有两个视图控制器 - 控制器A和控制器B.
点击控制器A上的特定项目会推动控制器B.我使用此设置didFinishLaunchingWithOptions
中的AppDelegate.m
方法设置导航栏按钮的颜色 -
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
适用于我应用中的每个导航控制器。我想要的是,控制器A中导航栏上的按钮颜色不同,控制器B中的颜色颜色不同。
这可能吗?
到目前为止我的尝试......
将此代码放入控制器A中推送控制器B的方法 -
[[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]];
不行。
这是控制器B的viewWillAppear
方法 -
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
没有
self.navigationItem.backBarButtonItem.tintColor = [UIColor whiteColor];
仍然没有变化。
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
*即将把我的机器撞到墙上
(从我的新电脑写) 我应该用什么代码来完成这个,我应该把它放在哪里?
提前致谢。
答案 0 :(得分:0)
代码行应为 -
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
并且它采用Controller B的viewDidAppear
方法。
请记住在控制器B的viewDidDisappear
方法中将其恢复为默认颜色,因此当您从控制器B导航时,不会出现意外结果。
(也许新电脑给我带来了一些运气)
答案 1 :(得分:0)
尝试:
[self setNeedsStatusBarAppearanceUpdate];
更新导航栏的tintColor后