模态未设置的UINavigationBar外观

Nic*_*ick 10 uinavigationbar ios uiappearance uiactivityviewcontroller

我在appDelegate中使用以下代码在我的应用程序中设置我的UINavigationBar和状态栏的外观:

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)

此代码正确地将所有内容的外观设置为白色,除非阻止第三方模式viewController,例如来自Dropbox API或来自UIActivityViewController的Mail/Message viewController.我已经包含了一些屏幕截图来展示它们的外观.

UIActivityViewController邮件: UIActivityViewController邮件

UIActivityViewController消息: UIActivityViewController消息

Dropbox API: Dropbox API

我试过把它放进去

[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
Run Code Online (Sandbox Code Playgroud)

以及

[[UINavigationBar appearanceWhenContainedIn:[UIActivityViewController class], nil] setTintColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

而且没有人在工作.

mrh*_*mrh 1

由于到目前为止还没有解决方案,我执行了以下操作将 UIActivityViewController 模式的导航栏颜色设置为白色(因为我的应用程序的导航栏颜色是蓝色),以便用户至少可以看到按钮:

[[UINavigationBar appearance] setBarTintColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

当用户完成 UIActivityViewController 模式后,应用程序的主导航栏颜色将返回蓝色。

希望有人能发布更好的解决方案。