使 UIActivityViewController 以 iOS 12 模态样式呈现每个系统操作
Posted
技术标签:
【中文标题】使 UIActivityViewController 以 iOS 12 模态样式呈现每个系统操作【英文标题】:Make UIActivityViewController present every system action with iOS 12 modal style 【发布时间】:2020-02-10 08:44:26 【问题描述】:ios 13 更改了模态演示样式。所以现在我需要我的共享控制器来显示每个系统操作,例如发送带有文本的电子邮件或使用旧的 iOS 12 模式样式打开系统消息 vc。这就是我的制作方法
let activityVC = UIActivityViewController(activityItems: [text], applicationActivities: nil)
if UIDevice.isIPad, let popover = activityVC.popoverPresentationController
popover.sourceRect = self.view.bounds
popover.sourceView = self.view
popover.permittedArrowDirections = [.up]
self.present(activityVC, animated: true)
我设置的 modalPresentationStyle 无关紧要。充其量它会影响activityVC。但是从它打开的每个系统 VC 都会回到新的模态样式。我看到一些应用程序以旧样式呈现这些屏幕。这里非常混乱......
令人惊讶的是,我找不到任何人问这个或类似的问题。一切通常都是关于其他 VC 的。
【问题讨论】:
【参考方案1】:如果您使用的是 NavigationControllerView,请在 RootViewController 的 viewDidLoad() 中尝试下面的 sn-p。希望这对你有用。
if #available(iOS 13.0, *)
isModalPresentation = true
else
//
【讨论】:
以上是关于使 UIActivityViewController 以 iOS 12 模态样式呈现每个系统操作的主要内容,如果未能解决你的问题,请参考以下文章
iOS 8.3:UIActivityViewController 显示无关的行
SwiftUI完美弹出UIActivityViewController(通过微信QQ或隔空投送分享)的应用分享窗口