【问题标题】:Wrong orientation after UIActivityViewController's Markup is dismissedUIActivityViewController 的标记被解除后方向错误
【发布时间】:2019-10-14 08:36:11
【问题描述】:

应用程序设置为支持纵向、横向左侧和横向右侧方向,并且仅支持 iPhone。显示 UIActivityViewController 的视图控制器不支持旋转,并且只能纵向。打开标记 PDF 时,它会从应用程序获取其支持的方向并旋转。当用户试图关闭标记视图并在横向按“完成”时,问题就出现了。然后父视图控制器也显示在横向事件中,它只支持纵向并且不应该自动旋转。

我使用 Apple 的反馈助手制作了一个 bug Radar。

class ViewController: UIViewController {

    override var shouldAutorotate: Bool {
        false
    }

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        [.portrait]
    }

    @IBAction func action(_ sender: Any) {
        let formatter = UIMarkupTextPrintFormatter(markupText: "")
        let activityViewController = UIActivityViewController(activityItems: ["text to share....", formatter], applicationActivities: nil)
        present(activityViewController, animated: false)
    }
}

仅在 iOS13 及更高版本上发生。

【问题讨论】:

    标签: ios swift xcode rotation uikit


    【解决方案1】:

    你做错了几件事,你必须从这个shouldAutorotate返回false,这个变量也返回方向。 supportedInterfaceOrientations。用这个替换你的代码。

    override var shouldAutorotate: Bool {
        return false
    }
    
    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        return [.portrait]
    }
    
    @IBAction func action(_ sender: Any) {
        let formatter = UIMarkupTextPrintFormatter(markupText: "")
        let activityViewController = UIActivityViewController(activityItems: ["text to share....", formatter], applicationActivities: nil)
        present(activityViewController, animated: false)
    }
    

    【讨论】:

    • 也一样!它不能解决问题。请注意,该示例在 Swift 5.1 中。如果你有一个单表达式函数,你可以跳过return (SE-0255)
    猜你喜欢
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多