如何更改iOS 8中displayModeButtonItem返回的按钮的文本颜色?

时间:2015-07-07 20:53:19

标签: ios8 uisplitviewcontroller

在iOS8中,我使用splitViewController来显示我的数据。我有导航栏的自定义颜色(浅蓝色),我将标题的颜色设置为白色。我想将displayModeButtonItem中文本的颜色更改为白色,但无论我做什么,它都会在iPhone上显示时保持默认的蓝色。当在iPad上显示时,它是白色的。

我试过了

    self.navigationItem.leftBarButtonItem = [self.splitViewController displayModeButtonItem];

self.navigationItem.leftBarButtonItem.tintColor = [UIColor whiteColor];

但这没有任何作用。似乎由于这个按钮是由iOS自动处理的,我所做的一切都无法改变它。有什么地方我可以截取这个按钮并设置它的颜色吗?

3 个答案:

答案 0 :(得分:4)

这很难找到。在Interface Builder中,您需要:

  1. 找到主视图控制器的导航控制器。
  2. 选择导航栏
  3. 更改色调
  4. Visual Guide to changing return button tint

答案 1 :(得分:1)

目标 c

在 SceneDelegate.m 中

- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {


UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
splitViewController.view.tintColor = [UIColor blackColor];

}

答案 2 :(得分:0)

如果您无法使用接受的答案,因为您在主视图中没有导航控制器(我没有),您可以尝试以下操作:

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

如果你把它放在App Delegate中,它会使每个UIBarButtonItem变为白色(包括displayModeButtonItem),但是你可以将它更具体地定位到SplitViewController的displayModeButtonItem。

相关问题