- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 iOS 8 的 UIPresentationController 编写自定义模式演示文稿。呈现的 Controller 具有首选界面方向 UIInterfaceOrientationLandscapeLeft
。
在使用 UIPresentationController 呈现此 Controller 时,它以纵向显示,忽略呈现的 Controller 的 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 考虑呈现的 Controller 的 preferredInterfaceOrientationForPresentation 方法的结果?
最佳答案
我在 Apple 论坛上回答了这个问题,但以防万一有人偶然发现来自 Google 的这个帖子..
这预计不会奏效。据我所知,在呈现时处理方向调整的逻辑仅存在于用于实现默认呈现样式的私有(private) UIPresentationController 子类中。
顺便说一句,自定义呈现 View Controller 的 -supportedInterfaceOrientations 方法通常会被忽略,除非您在呈现 Controller 子类中覆盖 -shouldRemovePresentersView。
关于ios - 自定义模式呈现忽略 preferredInterfaceOrientationForPresentation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26689426/
我只是创建了一个新的单 View 应用程序,并在 ViewController.m 文件中编写了三个函数。 -(BOOL)shouldAutorotate { return YES; } -(
我有一个场景,其中我有一个带有 5 个选项卡的 UITabbarController。每个选项卡都包含一个 UINavigationController。 现在在 UINavigationContro
我试图以编程方式强制一个弹出 View 为横向,同时我在项目设置中将应用程序的设备方向设置为纵向。我的代码如下所示: override func shouldAutorotate() -> Bool
我正在使用 iOS 8 的 UIPresentationController 编写自定义模式演示文稿。呈现的 Controller 具有首选界面方向 UIInterfaceOrientationLan
此错误没有意义,因为首选方向 UIInterfaceOrientationLandscapeRight 由支持的方向返回 //iOS6 -(BOOL)shouldAutorotate { re
我的应用程序窗口的 Root View Controller 是 UINavigationController 的子类。我已将此代码添加到类(class)中: - (BOOL)shouldAutoro
我们正在经历this crash来自 GoogleSignIn iOS 框架 v4.0.1(通过 CocoaPods 链接)。 致命异常:UIApplicationInvalidInterfaceOr
我正在使用 MSNavigationPaneViewController from here并进行轮换工作。我已经覆盖了根 UINavigationController 中的旋转方法 -(BOOL)s
我在尝试阻止某些 View 中的方向时遇到问题,但代码不起作用。 我在每个 View 中都使用这条线: - (BOOL)shouldAutorotate { return YES; } - (
我是一名优秀的程序员,十分优秀!