更改ios8扩展导航栏颜色

Dav*_* Ng 9 objective-c ios ios8

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

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

[[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]];
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
[[UINavigationBar appearance] setBackgroundColor:[UIColor blueColor]];
Run Code Online (Sandbox Code Playgroud)

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

默认导航. 颜色

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

jok*_*man 7

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

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

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

希望你觉得它有用.


Pop*_*eye 0

UINavigationBar尝试将半透明度设置为NO如下所示,我相信然后它应该开始拾取颜色

[[UINavigationBar appearance] setTranslucent:NO];
Run Code Online (Sandbox Code Playgroud)

这是Apple 的UINavigationBar translucent属性文档