寻找使用 UISplitViewController 的自动旋转问题的解决方案。重新创建的步骤是:
- 使用 Xcode 4.5+ 和 iOS6+ SDK,使用“主从应用程序:模板”创建一个新项目。
- 使用全屏大小的 XIB 文件将新视图控制器添加到项目中。
- 使用 -presentViewController:animated:completion 向详细视图控制器添加一个按钮,以全屏显示新的视图控制器:
- 向新视图控制器添加一个按钮,该按钮使用 dismissViewControllerAnimated:completion 关闭自身:
- 使用 iPad 以横向模式启动应用程序,然后在显示新视图控制器的详细视图中点击步骤 3 中创建的按钮。
- 在查看全屏视图控制器时,将 iPad 旋转到纵向,然后点击在步骤 4 中添加的按钮以关闭新的视图控制器。
问题:使用这些步骤,主视图控制器和细节视图控制器都将自动旋转,但主视图控制器将保持在屏幕上处于无响应状态,并在屏幕左上角占据一个与它处于横向模式。通过使用 iPad 左侧的手势,将显示正确的主视图控制器并清除问题。
我们已经能够在新视图控制器中使用 viewWillAppear 和 viewDidDisappear 来隐藏虚拟主视图控制器,但即使进行了修复,在执行上述步骤后,模板提供的纵向“主”按钮仍然没有响应,我们已经追溯到这样一个事实,即在修复之前由主视图控制器占据的屏幕左上角区域对触摸没有响应。
我们已经尝试了一些尝试以不同的方式让第一响应者辞职,但没有完全解决这个问题。
注意:只有在首次启动应用程序时遵循上述步骤 5-6 时,才会出现此问题。在单个应用程序启动中重复第 6 步通常不会每次都导致问题。它在应用程序的每次启动时都是可重复的。