更改ios8扩展导航栏颜色

我正在开发iOS8 App Extension(照片编辑扩展)

我尝试过这些方法来更新导航栏颜色,但是失败了:

[[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]];
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
[[UINavigationBar appearance] setBackgroundColor:[UIColor blueColor]];

显示认的半透明灰色导航栏.

有没有人知道如何更改iOS8扩展中的导航栏颜色?

解决方法

尝试self.navigationController.navigationBar.barTintColor = [UIColor yellowColor];第一.
这适用于某些主机应用程序但不是全部.因为某些主机应用程序在UIAppearance设置中配置颜色.

在这里找到了一些信息:https://pspdfkit.com/blog/2017/action-extension/
根据上面的链接,扩展将“从其主机应用程序中获取UIAppearance设置”,这比您发送给实例的“setColor”消息具有更高的优先级.

那么你可以做的是配置扩展的plist:
在NSExtension字典中,您可以指定键NSExtensionOverridesHostUIAppearance并将值设置为YES.这将使您的扩展程序覆盖主机应用程序的UIApprearance设置.不幸的是,这仅适用于iOS 10及更高版本.

希望你觉得它有用.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...