如何在特定控制器上修复alertView方向?

时间:2019-04-17 15:53:46

标签: ios swift

我想确定特定控制器的方向。

我尝试了多次,但无法修复。我在appdelegate方法(supportedInterfaceOrientationsFor)中修复了控制器方向,但警报消息方向的原因无法正常运行,然后正常运行。我的意思是,它适用于所有类型方向。

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    if !UIDevice.isIphone() {
        let controller = (application.keyWindow?.rootViewController as? UINavigationController)?.visibleViewController
        if controller is LiveStreamViewController || controller is VideoStreamingViewController {
            return .portrait
        } else {
            return .all
        }
    } else {
        return .portrait
    }
}

2 个答案:

答案 0 :(得分:0)

通过实现application(_:supportedInterfaceOrientationsFor:)不能确定“特定控制器”的方向。它是通过实现supportedInterfaceOrientations在特定控制器中确定的。即使这样,除非您的视图控制器位于最高位置,否则也不会查询该值。

答案 1 :(得分:0)

警告视图已根据Orientation进行了腐烂,但如果不起作用,请尝试使用以下代码

 func didPresent(_ alertView: UIAlertView) {
        // UIAlertView in landscape mode for specific controller?
        UIView.beginAnimations("", context: nil)
        UIView.setAnimationDuration(0.1)
        alertView.transform = alertView.transform.rotated(by: 3.14159 / 2)
        UIView.commitAnimations()
    }