2010-05-16 84 views
0

我创建了一个模仿UISplitViewController的自定义UIViewController。它管理两个子视图控制器,它们在横向显示在左侧&右侧身体区域中,并隐藏左侧以在肖像中显示在弹出窗口中。它工作正常,使用didRotateFromInterfaceOrientation:和willRotateToInterfaceOrientation:消息来重置位置和大小的子视图。所有视图和子控制器都是从一个笔尖加载的。这个自定义视图控制器显示在UINavigationController中。显示模式对话框后,子视图显示混乱的旋转状态

在其中一个子视图控制器使用presentModalViewController后会出现麻烦。如果在视图初始化后(但在显示模态控制器之前)旋转设备,则在模式对话框关闭后,左和/或主体视图将以与模式对话框之前不同的旋转重新呈现被改变了。

我想知道人们是否有类似的问题,以及解决方案是什么。我确信示例代码会很有帮助,但需要花费大量工作才能将它提炼成可运行的示例。

回答

0

是的,我有同样的问题,但找不到解决方案。我正在考虑几件事: 当方向改变时,每个子视图控制器以模态方式显示没有动画并立即解散。这有效,但我有问题一个接一个地显示2个viewcontrollers。另外,当一个视图控制器模态地提出一些额外的调用viewWillAppear等,可能会使应用程序不可预知。

另一个想法是添加到tabviewcontroller并以相同的方式呈现它。但是这不起作用。所以我采取了一种解决方法,不要将任何viewcontroller模态呈现给子视图控制器。由于这个原因,self.interfaceorientation也不能被信任。

0

当我在拆分视图应用程序中看到相同的行为时,我注意到它只发生在我将设备放在“左侧home按钮”横向中时。我已将初始界面方向设置为“右侧主页按钮”,但允许左侧或右侧主页按钮的横向方向(此应用程序没有纵向方向)。我的解决方案是不再支持左侧主页按钮横向取向,现在所有后期模式子视图都可靠地显示。