presentedViewController 改变呈现视图控制器的方向,破坏布局
presentedViewController changes orientation of presenting view controller, breaks layout
我有一个 ViewController A
呈现 MPMoviePlayerViewController
。我想强制视频播放器横向播放,所以我使用这个:
在 AppDelegate 中,supportedInterfaceOrientationsForWindow
if let viewController = self.window!.rootViewController?.presentedViewController {
if let playbackController = viewController as? MPMoviePlayerViewController {
return Int(UIInterfaceOrientationMask.LandscapeLeft.rawValue) | Int(UIInterfaceOrientationMask.LandscapeRight.rawValue)
}
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
在我的视频播放器子类中,我设置了支持的方向:
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.LandscapeLeft.rawValue) | Int(UIInterfaceOrientationMask.LandscapeRight.rawValue)
}
然而,当视频播放器以横向模式关闭时,View Controller A
卡在横向模式中。如何防止 View Controller A
切换到横向,并保持纵向?
只需添加
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
每个需要它的视图控制器并避免基于 AppDelegate 的方向支持。
我有一个 ViewController A
呈现 MPMoviePlayerViewController
。我想强制视频播放器横向播放,所以我使用这个:
在 AppDelegate 中,supportedInterfaceOrientationsForWindow
if let viewController = self.window!.rootViewController?.presentedViewController {
if let playbackController = viewController as? MPMoviePlayerViewController {
return Int(UIInterfaceOrientationMask.LandscapeLeft.rawValue) | Int(UIInterfaceOrientationMask.LandscapeRight.rawValue)
}
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
在我的视频播放器子类中,我设置了支持的方向:
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.LandscapeLeft.rawValue) | Int(UIInterfaceOrientationMask.LandscapeRight.rawValue)
}
然而,当视频播放器以横向模式关闭时,View Controller A
卡在横向模式中。如何防止 View Controller A
切换到横向,并保持纵向?
只需添加
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
每个需要它的视图控制器并避免基于 AppDelegate 的方向支持。