2010-05-16 32 views
0

我創建了一個模仿UISplitViewController的自定義UIViewController。它管理兩個子視圖控制器,它們在橫向顯示在左側&右側身體區域中,並隱藏左側以在肖像中顯示在彈出窗口中。它工作正常,使用didRotateFromInterfaceOrientation:和willRotateToInterfaceOrientation:消息來重置位置和大小的子視圖。所有視圖和子控制器都是從一個筆尖加載的。這個自定義視圖控制器顯示在UINavigationController中。顯示模式對話框後,子視圖顯示混亂的旋轉狀態

在其中一個子視圖控制器使用presentModalViewController後會出現麻煩。如果在視圖初始化後(但在顯示模態控制器之前)旋轉設備,則在模式對話框關閉後,左和/或主體視圖將以與模式對話框之前不同的旋轉重新呈現被改變了。

我想知道人們是否有類似的問題,以及解決方案是什麼。我確信示例代碼會很有幫助,但需要花費大量工作才能將它提煉成可運行的示例。

回答

0

是的,我有同樣的問題,但找不到解決方案。我正在考慮幾件事: 當方向改變時,每個子視圖控制器以模態方式顯示沒有動畫並立即解散。這有效,但我有問題一個接一個地顯示2個viewcontrollers。另外,當一個視圖控制器模態地提出一些額外的調用viewWillAppear等,可能會使應用程序不可預知。

另一個想法是添加到tabviewcontroller並以相同的方式呈現它。但是這不起作用。所以我採取了一種解決方法,不要將任何viewcontroller模態呈現給子視圖控制器。由於這個原因,self.interfaceorientation也不能被信任。

0

當我在拆分視圖應用程序中看到相同的行爲時,我注意到它只發生在我將設備放在「左側home按鈕」橫向中時。我已將初始界面方向設置爲「右側主頁按鈕」,但允許左側或右側主頁按鈕的橫向方向(此應用程序沒有縱向方向)。我的解決方案是不再支持左側主頁按鈕橫向取向,現在所有後期模式子視圖都可靠地顯示。