我正在开发 iOS8 应用扩展(照片编辑扩展)
我试过这些方法来更新导航栏的颜色,但失败了:
[[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]];
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
[[UINavigationBar appearance] setBackgroundColor:[UIColor blueColor]];
它显示默认的半透明灰色导航栏。
有人知道如何更改 iOS8 扩展中的导航栏颜色吗?
最佳答案
首先尝试 self.navigationController.navigationBar.barTintColor = UIColor.yellow
。
这应该适用于某些主机应用程序,但不是全部。因为一些主机应用程序在 UIAppearance 设置中配置颜色。
我在这里找到了一些信息:https://pspdfkit.com/blog/2017/action-extension/#uiappearance
根据上面的链接,扩展程序将“从其主机应用程序中获取 UIAppearance 设置”,这比您发送给实例的“setColor”消息具有更高的优先级。
在这种情况下,您可以做的是修改扩展的 plist:
在 NSExtension
字典中,您可以添加键 NSExtensionOverridesHostUIAppearance
并将值设置为 YES
。这将使您的扩展覆盖主机应用程序的 UIApprearance 设置。不幸的是,这仅适用于 iOS 10 及更高版本。
希望对您有所帮助。
关于ios - 更改 ios8 扩展导航栏颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25642796/