2013-03-26 45 views
5

我有一個奇怪的問題UISplitViewController。在我的主視圖控制器中有一個按鈕,它可以在點擊時打開一個模式視圖(使用簡單的故事板細節)。Modal在旋轉後消失UISplitViewController

但是,當我旋轉iPad時模式視圖消失,但只有在從縱向旋轉到橫向時纔會消失。我的主視圖控制器以縱向方式隱藏,就像本地Mail應用程序中一樣。

如果我在風景(當主人總是可見)並打開我的模式,旋轉設備工作正常,我的模態停留在屏幕上。

我嘗試以編程方式手動觸發segue,如果我在splitViewController上調用performSegueWithIdentifier:,則兩種方式都可以旋轉。但是我想知道這是否可以以更簡單的方式解決,因爲我在主視圖控制器中有其他按鈕顯示模式,我不想爲每個按鈕執行IB動作,並失去了storyboard segues的優勢。

回答

1

不幸的是,它是這樣的,當你的ipad在肖像模式下,你的主人彈出,它不是另一個形狀的主人。什麼意思是,你正在使用這個酥料餅作爲presentingViewController呈現模式,因此,當您移動從縱向到橫向的方法splitViewController:willShowViewController會讓你的酥料餅的零,你可以看到:

- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem 
{ 
    // Called when the view is shown again in the split view, invalidating the button and popover controller. 
    [self.navigationItem setLeftBarButtonItem:nil animated:YES]; 
    self.masterPopoverController = nil; 
} 

所以我明白,是可以接受的,你的模態正在與它一起。因此,你可以理解爲什麼當你在你的splitViewController上調用performSegueWithIdentifier:這個動作時,它不會發生,你的模態不再與你的popover連接。

所以你可能會問爲什麼它不會發生,當你從風景移到肖像..原因是splitViewController:willHideViewController,它隱藏viewController它不會刪除它,所以你的模態總是連接。

所以,遺憾的是沒有解決方案,你將不得不通過代碼來執行的動作..

我希望它能幫助,

羅伯託