2010-04-21 54 views
1

我有一個在iPad上正常運行的拆分視圖應用程序。它使用默認設置(人像中的Popover,風景中左邊的表格視圖)。一旦應用程序運行,視圖就會正確移位。我看到的問題是,當應用程序啓動(在仿真器中)以橫向模式運行時,UI範例是用於縱向模式(主列表是彈出窗口)的應用程序是什麼加載的。如何設置基於UISplitViewCOntroller的iPad應用程序的初始定位

我在想這是模擬器的一些奇怪,或者我在主視圖控制器上缺少一個選項。

回答

0

此外,作爲回答,希望對於需要相同修復的人員更加明顯。

我解決了這個問題。我正在等待一個外部XML流被解析。因此,我使用我的applicationDidFinishLaunching方法加載了帶有splitViewController視圖的窗口。

添加:

[window addSubview: splitViewController.view]; 
[window makeKeyAndVisible]; 

回該方法固定方向識別

2

我遇到了同樣的問題,因爲這裏描述。令人尷尬的是,解決方案與在將視圖添加到窗口之前手動設置視圖的框架一樣簡單。

只需檢查界面的方向,如果是風景,則切換應用程序框架的寬度和高度尺寸(即寬度變爲高度,高度變爲寬度)。

CGRect frame = [[UIScreen mainScreen] applicationFrame]; 

switch(controller.interfaceOrientation){ 
    case UIInterfaceOrientationPortrait: 
    case UIInterfaceOrientationPortraitUpsideDown: 
     [controller.view setFrame:frame]; 
     break; 
    case UIInterfaceOrientationLandscapeLeft: 
    case UIInterfaceOrientationLandscapeRight: 
     [controller.view setFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.height, frame.size.width)]; 
     break; 
} 
+0

我不認爲這讓開發者感到尷尬;這是SDK中的一個缺陷。這一步不應該被要求。如果你沒有在你的應用程序中使用分割視圖控制器,你不必採取這一步驟。 – MystikSpiral 2010-06-22 12:07:39

+0

+1很有幫助 – Jomoos 2012-08-01 06:26:16

0

我成功進入顯示加載視圖做

[window addSubview:self._splitViewController.view]; 
[window addSubview:self._myLoadingView]; 
self._splitViewController.view.hidden = YES; 
[window makeKeyAndVisible]; 
[self loadAllDatas]; 
self._splitViewController.view.hidden = NO; 

我工作得很好

+0

如果您的視圖不是加載的SplitViewController的一部分,是否適合您?部分問題是我想要顯示「加載」視圖。當我這樣做時,它會把所有東西都扔掉,包括方向支持按照上述方式進行操作。 – MystikSpiral 2010-07-08 11:57:26

0

它不能正常工作,因爲UISplitViewController的默認詳細視圖控制器是隻是一個普通的UIViewController。 UIViewController的shouldRotate方法僅爲縱向模式返回YES。

在shouldRotate中添加一個通用的UIViewController,在所有方向上返回YES解決了我的問題。

相關問題