自定义特定后退按钮的标题属性

时间:2013-05-22 09:53:18

标签: ios uinavigationbar customization uibarbuttonitem

只要您不使用操作系统提供的任何UI元素(例如MFMailComposeViewController类),外观代理就很有用。出于这个原因,我需要自定义导航栏中的条形按钮项目,特别是后退按钮

有什么问题?在修改后退按钮的标题属性时,这似乎有问题。关于customizing the back button已经写了很多,但我似乎无法找到有关修改后退按钮的标题属性(文本颜色,阴影颜色等)的信息(而不使用外观代理)。

我尝试了什么?设置backBarButtonItem属性的标题属性,如下所示。如果我在子视图控制器或父视图控制器中执行此操作并不重要。这适用于leftBarButtonItem和`rightBarButtonItem'项目,这让我感到困惑。

[self.navigationItem.backBarButtonItem setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];

当然,使用外观代理也可以正常工作(见下文),但这会混淆操作系统提供的导航栏,如上所述。

[[UIBarButtonItem appearance] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];

2 个答案:

答案 0 :(得分:2)

只有当UIBarButtonItem存在于特定视图层次结构中时,才能将其定位。所以你可以创建一个UINavigationController的子类,比如说MyNavigationController并执行:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [MyNavigationController class], nil] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];

答案 1 :(得分:1)

我似乎无法找到有关修改后退按钮的标题属性(文本颜色,阴影颜色等)的信息 - 当然你找不到。

根据UINavigationItem Class Reference

  

如果要为后退按钮指定自定义图像或标题,   您可以指定自定义栏按钮项(使用您的自定义标题或   而不是这个属性。配置栏按钮时   item,不要为其分配自定义视图;导航项忽略   无论如何,后栏按钮中的自定义视图。