iOS 8 の UIPresentationController を使用してカスタム モーダル プレゼンテーションを作成しています。提示されているコントローラーには、優先されるインターフェースの向きがありますUIInterfaceOrientationLandscapeLeft
。
UIPresentationController を使用してこのコントローラーを提示すると、提示されたコントローラーの preferredInterfaceOrientationForPresentation メソッドの結果を無視して、ポートレートで表示されます。
View Controller の提示
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let controller = segue.destinationViewController as? UIViewController {
controller.modalPresentationStyle = .Custom
controller.transitioningDelegate = self
}
}
func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return nil
}
func animationControllerForPresentedController(presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return nil
}
func presentationControllerForPresentedViewController(presented: UIViewController,
presentingViewController presenting: UIViewController!,
sourceViewController source: UIViewController) -> UIPresentationController? {
return UIPresentationController(presentedViewController: presented, presentingViewController: presenting)
}
提示されたView Controller
override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
return .LandscapeLeft
}
UIPresentationController に、提示されたコントローラーの preferredInterfaceOrientationForPresentation メソッドの結果を考慮させることは可能ですか?