关闭UIActivityViewController的标记后方向错误

时间:2019-10-14 08:36:11

标签: ios swift xcode rotation uikit

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

我与Apple的反馈助手做了一个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和更高版本上发生。

1 个答案:

答案 0 :(得分: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)
}