UIActivityViewController 分享消息取消不显示
Posted
技术标签:
【中文标题】UIActivityViewController 分享消息取消不显示【英文标题】:UIActivityViewController share message cancel not showing 【发布时间】:2017-11-21 16:08:20 【问题描述】:当我想通过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")
【问题讨论】:
【参考方案1】:由于 UIBarButtomItem.apperance().tintColor 更改,我遇到了同样的问题。我没有更改默认 UI 外观,而是创建了从 UINavigationController 继承的 NavigationController 类,并在 viewDidLoad 方法中自定义了我需要的内容。接下来,我将故事板和纯代码中使用的所有 UInavigationController 更改为 NavigationController。现在我可以在 AppDelegate 中更改这个类的控件,例如:
let navBarButton = UIBarButtonItem.appearance(whenContainedInInstancesOf: [NavigationController.self])
navBarButton.tintColor = .white
【讨论】:
以上是关于UIActivityViewController 分享消息取消不显示的主要内容,如果未能解决你的问题,请参考以下文章
UIActivityViewController 共享 UIActivity 未显示
UIActivityViewController 不适用于 WKWebView
限制 UIActivityViewController 共享扩展活动