2010-04-21 59 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解决了我的问题。

相关问题