UIActivityViewController共享消息取消未显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIActivityViewController共享消息取消未显示相关的知识,希望对你有一定的参考价值。

当我想通过UIActivityViewController与消息应用程序共享URL时。取消按钮是白色的(我猜因为它仍然可以点击)

它只出现在ios 11上,这里的代码用于呈现UIActivityViewController,我已经尝试在呈现UIActivityViewController之前更改颜色,但按钮保持白色:

if #available(iOS 11.0, *) {
   UIButton.appearance(whenContainedInInstancesOf:[UINavigationController.self]).tintColor = .blue
}

这里的代码用于呈现UIActivityViewController

let vc = UIActivityViewController(activityItems: [article.webReference], applicationActivities: [])
        self.present(vc, animated: false, completion:nil)

        vc.completionWithItemsHandler = {(s, ok, items, error) in
            switch s {
            case UIActivityType.mail?:
                print("mail")
                AnalyticsHelper.sharedInstance.sendShareMailEvent(articleUrl: article.webReference)
            case UIActivityType.postToFacebook?:
                print("facebook")
                AnalyticsHelper.sharedInstance.sendShareFacebookEvent(articleUrl: article.webReference)
            case UIActivityType.postToTwitter?:
                print("twitter")
                AnalyticsHelper.sharedInstance.sendShareTwitterEvent(articleUrl: article.webReference)
            default:
                print("others")
            }
        }
答案

由于UIBarButtomItem.apperance(),我遇到了同样的问题.tintColor已更改。我没有改变默认的UI外观,而是创建了我的NavigationController类,它继承自UINavigationController,在viewDidLoad方法中我自定义了我需要的东西。接下来,我将故事板和纯代码中的所有UInavigationController用法更改为NavigationController。现在我可以在AppDelegate中更改此类的控件,例如:

let navBarButton = UIBarButtonItem.appearance(whenContainedInInstancesOf: [NavigationController.self])
navBarButton.tintColor = .white

以上是关于UIActivityViewController共享消息取消未显示的主要内容,如果未能解决你的问题,请参考以下文章

UIActivityViewController 背景颜色

UIActivityViewController 共享 UIActivity 未显示

UIActivityViewController 不适用于 WKWebView

限制 UIActivityViewController 共享扩展活动

尝试呈现 UIActivityViewController 时崩溃

更改 UIActivityViewController 的 navigationBar 的颜色