只要您不使用操作系统提供的任何 UI 元素(例如 MFMailComposeViewController 类),外观代理就很有用。因此,我需要自定义导航栏中的栏按钮项,特别是后退按钮。
问题是什么?在修改后退按钮的标题属性时,这似乎是有问题的。关于customizing the back button已经写了很多了。 ,但我似乎找不到有关修改后退按钮的标题属性(文本颜色、阴影颜色等)的信息(不使用外观代理)。
我尝试过什么?设置 backBarButtonItem
属性的标题属性,如下所示。我是否在 subview Controller 或父 View Controller 中执行此操作并不重要。这对于 leftBarButtonItem
和 `rightBarButtonItem' 项目效果很好,这让我感到困惑。
[self.navigationItem.backBarButtonItem setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];
当然,使用外观代理也可以正常工作(见下文),但这会弄乱操作系统提供的导航栏,如上所述。
[[UIBarButtonItem appearance] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];
最佳答案
仅当 UIBarButtonItems 存在于特定 View 层次结构中时,您才能定位它们的外观。因此,您可以创建 UINavigationController 的子类,例如 MyNavigationController 并执行以下操作:
[[UIBarButtonItem AppearanceWhenContainedIn:[UINavigationBar 类], [MyNavigationController 类], nil] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];
关于ios - 自定义特定后退按钮的标题属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16688795/