簡體   English   中英

從UINavigationController切換到UISplitViewController后,幀大小/方向不正確

[英]Incorrect frame size/orientation after switching from UINavigationController to a UISplitViewController

我試圖在我的應用程序中僅對一個選項卡使用UISplitViewController(其他選項卡使用導航控制器和不同的ViewControllers)。

我已經在MainWindow.xib中添加了SplitViewController(這是我可以使其正常工作的唯一方法),但是當通常調用didFinishLaunchingWithOptions時,我沒有將其添加到窗口中,因此SplitViewController保持隱藏狀態。

當我單擊選項卡時,我在委托窗口中調用一些代碼以隱藏導航控制器,並使用以下方法將SplitViewController放在適當的位置:

[window addSubview:splitViewController.view];

如果iPad處於橫向模式,則由於某些原因,SplitViewController仍認為它處於縱向模式,並且根視圖和詳細視圖控制器的框架不正確。 如果我開始旋轉iPad,那么一切正常。 只是最初的電話是錯誤的。

看起來SplitViewController沒有被通知初始的景觀旋轉,因為它是隱藏的。

在第一個調用過程中,根控制器的幀rect為320 x 980,如果將iPad旋轉到縱向,然后又回到橫向模式,則幀rect為320 x 724。

大小錯誤的問題是它不會在根控制器的TableView中顯示最后一項。

我試圖更改根控制器的ViewDidLoad和ViewWillAppear中的幀大小,但沒有任何改變。

任何幫助將非常感激。

奇怪的是,在viewDidLoad方法中修復了detailViewController的大小,從而解決了此問題。

self.view.frame = CGRectMake(321, 0, 703, 699);

我有完全相同的配置:一個作為rootController的tabBarController,帶有一個splitViewController和幾個viewControllers。

也許這可以對您有所幫助。

我有一個iPad應用程序,帶有一個帶有多個標簽頁/頁面的標簽欄。 其中一頁使用拆分視圖控制器,左視圖也包含導航控制器。 輪換方面似乎運行良好。 這是我的設置方法:

AppDelegate

MyLeftViewController *viewController = [[MyLeftViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[viewController release];

MyRightViewController *rightView = [[MyRightViewController alloc] init];

UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = [NSArray arrayWithObjects:navController, rightView, nil];

[rightView release];   
[navController release];

splitViewController.delegate = rightView;
[viewControllersArray addObject:splitViewController];    
[splitViewController release];

...add other view controllers to viewControllersArray...

tabBarController.viewControllers = viewControllersArray;
[viewControllersArray release];
[window addSubview:tabBarController.view];    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM