阻止Share Extension中的UINavigationBar继承主应用程序外观设置

Qua*_*ite 10 uinavigationbar ios swift

我为我创建了一个共享扩展,我必须在Storyboard中创建自己的UI.整个过程非常有效,除了导航栏继承了主应用程序的外观.例如:

这是在NYT应用程序中: 在此输入图像描述

这是在副应用中: 在此输入图像描述

我该如何设置自己的外观?

小智 5

共享扩展旨在从主应用程序的首选样式继承.你的两个例子表明,我不记得一个具有不同风格的共享扩展的应用程序.

这个问题包括彻底解决这个问题,包括链接到向Apple提交的rdar.

不是你想要的答案,但似乎没有一种"非hacky"方式实现这一目标.


Mic*_*ong 5

我要做的是将UINavigationBar子类化为MYNavigationBar,然后将我的自定义外观样式应用于MYNavigationBar.

然后,我将在整个应用程序中使用MYNavigationBar而不是UINavigationBar(只是在故事板中更改类类型).


Qua*_*ite 0

正如其他答案所指出的那样,它根本无法使用现有的 API 来完成。我尝试子类化UINavigationBar,甚至覆盖诸如tintColorand之类的东西backgroundColor,但这也不起作用。

我最终做的是使用视图并将其样式设置为看起来像导航栏,效果很好。虽然有点 hacky,但还是可以的,因为它很可能永远不会与 iOS 的未来版本发生冲突......