首页 文章

自定义特定后退按钮的 Headers 属性

提问于
浏览
2

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

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

What have I tried? 设置 backBarButtonItem 属性的 Headers 属性,如下所示 . 如果我在子视图控制器或父视图控制器中执行此操作并不重要 . 这适用于 leftBarButtonItem 和`rightBarButtonItem'项目,这让我感到困惑 .

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

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

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

2 回答

  • 1

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

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

  • 2

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

    根据UINavigationItem Class Reference

    如果要为后退按钮指定自定义图像或 Headers ,则可以将自定义栏按钮项(带有自定义 Headers 或图像)指定给此属性 . 配置条形按钮项时,不要为其指定自定义视图;无论如何,导航项忽略后栏按钮中的自定义视图 .

相关问题