前提是非常簡單的:我想顯示在使用一個UISplitViewController iPad程序模態的視圖。ipad公司黜模態的視圖攪亂UISplitView面板
視圖層次是直接的:
/- TableViewController1
/- root:TabBarController -- TableViewController2
SplitViewController -
\- detail:CustomViewController
當我點擊在TableViewController1表格單元格中的一個,我打開一個模式的看法:
- (void)tableView:(UITableView *)tv didSelectRowAtIndexPath:(NSIndexPath *)ip {
UIViewController *vc = [[MyModalClass alloc] init];
UINavigationController *nc = [[UINavigationController alloc]
initWithRootViewController:vc];
nc.modalPresentationStyle = UIModalPresentationFormSheet;
nc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:nc animated:true];
[nc release];
[vc release];
}
這只是正常:在出現視圖。當我試圖以除風景之外的任何方向來解決問題時,問題就開始了。
在ModalViewController,下面的方法是通過UITabBarButton導航欄觸發:
- (void) closeButtonInNavBarWasClicked:(id)sender {
[self dismissModalViewControllerAnimated:true];
}
,這就是問題的開始。
當該代碼被調用時,模態視圖中消失,但是:在TabBarController(分割視圖的根視圖)是突然旋轉並調整大小。內容突然橫向,部分涵蓋了細節視圖。細節視圖不會調整爲較小,它只是部分覆蓋了根視圖。
唯一的情況下這個問題不會出現的是當我在TableViewController1電池接頭時,應用程序處於縱向模式。儘管popover中存在根視圖(這可能是一個充足的bug源),但一切正常。
有些東西我已經嘗試,沒有成功:
- 轉儲標籤欄,只是顯示TableViewController1作爲分割視圖
- 的根控制器創建委託協議,使得父TableViewController1駁回模態視圖而不是MyModalClass視圖本身。
- 在TableViewController1.splitViewController上呈現/解除模態視圖實際上讓事情變得更糟:視圖甚至沒有出現。
- 犧牲幾隻山羊也沒有幫助。
我會感激巨大在這個問題上的任何輸入。