UINavigationBar外观addSubview在iOS 8中不工作

UINavigationBar外观addSubview在iOS 8中不工作,ios,objective-c,iphone,ios7,ios8,Ios,Objective C,Iphone,Ios7,Ios8,我想向导航栏添加一个图像。我曾经 [[UINavigationBar appearance] addSubview:logoImage]; 它似乎适用于iOS 7,但不适用于iOS 8,任何人都可以解释为什么会出现这种情况,以及在iOS 8中的导航栏上添加图像视图的替代方法是什么?调用[[UINavigationBar外观]返回receiver类的外观代理。addSubview:方法未标记为UI\U外观\U选择器。。UIAppearance代理方法的一个主要缺点是很难知道哪些选择器是兼

我想向导航栏添加一个图像。我曾经

    [[UINavigationBar appearance] addSubview:logoImage];

它似乎适用于iOS 7,但不适用于iOS 8,任何人都可以解释为什么会出现这种情况,以及在iOS 8中的导航栏上添加图像视图的替代方法是什么?

调用
[[UINavigationBar外观]
返回receiver类的外观代理。
addSubview:
方法未标记为
UI\U外观\U选择器。
。UIAppearance代理方法的一个主要缺点是很难知道哪些选择器是兼容的

本文对此进行了更好的解释: 这篇文章中的链接显示了在iOS 7中标记为
UI\u外观\u选择器的方法

您应该子类化
UINavigationBar
并调用
[[UINavigationController alloc]initWithNavigationBarClass:toolBarClass://code>。将新的导航栏子类作为第一个参数传递,将nil作为第二个参数传递,以使用标准的
UIToolbar
。在子类中,像您正在做的那样添加图像

另一种可行的方法是获取导航控制器的导航栏并在其中添加子视图,如下所示:
[self.navigationController.navigationBar addSubview:logoImage]
。这可能可行,但创建自己的子类肯定会给您带来更多灵活性。

非常感谢,我需要一个快速修复和
[self.navigationController.navigationBar addSubview:logoImage]
工作正常,因此没有将
UINavigationBar子类化