我最近遇到了一个问题.我的iPad应用程序以某种方式阻止iPad自动旋转.我的应用程序加载了一个UISplitView,两个视图控制器都返回YES,用于shouldAutorotateToInterfaceOrientation:.我已经设置了我的info.plist以包含所有四个方向的"支持的界面方向"键.但是,当我运行应用程序时,旋转设备不会旋转splitView(即使我收到UIDeviceOrientationDidChangeNotification).此外,当我以不同的方向退出我的应用程序,它在iPad主屏幕中启动时不会自动旋转到正确的视图,直到我再次旋转它,而我的应用程序没有运行....任何想法将不胜感激... .
UISplitViewController
是我曾经使用过的最具气质的视图控制器子类之一.为了使其"完美"工作,它必须作为应用程序窗口中的单个根视图存在.但是,你可以用一些技巧来解决这个问题 - 在我的情况下,我需要一个UITabBarController
至少有两个不同的UISplitViewController
s作为视图控制器 - 但是你必须处理涉及旋转和UISplitViewControllerDelegate
回调没有触发的奇怪情况.
希望Apple能够在未来UISplitViewController
与其他UIKit
组件更加兼容......
我遇到了两个从属UINavigationControllers同样的问题.在我的情况下,旋转开始工作一旦我overrode shouldAutorotateToInterfaceOrientation:在左控制器总是返回'是'.