【发布时间】:2013-05-22 09:53:17
【问题描述】:
只要您不使用操作系统提供的任何 UI 元素,例如 MFMailComposeViewController 类,外观代理就很有用。为此,我需要自定义导航栏中的条形按钮项,尤其是后退按钮。
有什么问题?这在修改后退按钮的标题属性时似乎有问题。关于customizing the back button 已经写了不少了,但是我似乎找不到关于修改后退按钮的标题属性(文本颜色、阴影颜色等)的信息(不使用外观代理 em>)。
我尝试了什么? 如下所示设置backBarButtonItem 属性的标题属性。如果我在子视图控制器或父视图控制器中执行此操作并不重要。这适用于 leftBarButtonItem 和 `rightBarButtonItem' 项目,这让我感到困惑。
[self.navigationItem.backBarButtonItem setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];
当然,使用外观代理也可以正常工作(见下文),但这会扰乱上述操作系统提供的导航栏。
[[UIBarButtonItem appearance] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];
【问题讨论】:
-
问题是,
backBarButtonItem属性本身就是nil!因此,将任何消息传递给它都不会产生任何影响。正如@βhargavḯ 指出的那样,这与文档一致。因此,在不使用appearanceAPI 的情况下,您可以在代码中创建具有所需自定义的UIBarButtonItem实例,并将其设置为后退按钮。
标签: ios uinavigationbar customization uibarbuttonitem