【问题标题】:Customizing UIBarButtonItem apperance with multiple UINavigationBar views使用多个导航栏视图自定义 UIBarButtonItem 外观
【发布时间】:2014-10-23 21:55:27
【问题描述】:

我正在使用这个:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationController class], nil]
 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                         color ,NSForegroundColorAttributeName,
                         FONT(FONT_REGULAR, 15.0f), NSFontAttributeName,
                         nil] forState:UIControlStateNormal];

viewWillAppear: 方法上为UINavigationController 中的按钮设置颜色。 我的应用程序有 5 个主要视图,每个视图都有 UINavigationController 分组在 UITabBar 下。

问题是当我在UITabBar 视图之间切换时,它会发疯,它总是将最后初始化的视图颜色应用于所有其他视图。当我使用适当的参数进行更改时,我三重检查代码正在运行,它对现有按钮没有影响。

有没有其他方法可以为不同的UINavigationControllers 分别设置颜色?

【问题讨论】:

    标签: ios uinavigationcontroller uitabbaritem


    【解决方案1】:

    不要使用appearanceWhenContainedIn: 方法,它会改变一个类的所有实例的外观。在你的情况下,这个类是UIBarButtonItem。而且您一次又一次地在viewWillAppear: 方法上执行此操作,这会导致更改所有UIBarButtonItem 对象的颜色。

    这个问题回答了你的问题:

    iOS 6 appearance when contained in multiple classes

    编辑:

    作为一种解决方案,您可以将tintColor 属性用于精确的UIBarButtonItem 对象。

    myBarButtonItem.tintColor = [UIColor blueColor];
    

    【讨论】:

    • 但我想一次又一次地改变它,只是为了不同标签上的不同颜色。我该如何改变呢?
    • 对精确的 UIBarButtonItem 对象使用 tintColor 属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2015-03-14
    相关资源
    最近更新 更多