使 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或隔空投送分享)的应用分享窗口

SwiftUI完美弹出UIActivityViewController(通过微信QQ或隔空投送分享)的应用分享窗口

第一信使即细胞外信号,胞内信号为第二信使。

“第二信使”都有哪些?与它作用的物质都有哪些?

使引导容器大小变大会使页面无响应