Iphone 拆分视图控制器的详细视图在ios 4.2中没有更改其大小?

Iphone 拆分视图控制器的详细视图在ios 4.2中没有更改其大小?,iphone,ios4,ipad,Iphone,Ios4,Ipad,在我的iPad应用程序中,我使用了UISplitViewController,其中主视图包含表视图,而详细视图包含UIViewController。在按钮上,事件详细视图位于主视图之上,代码如下所述。这段代码在iPad3.2上运行良好,但在iOS4.2上不起作用 UIViewController *leftUIV = [appDelegate.splitViewController.viewControllers objectAtIndex:0]; UIViewController *rig

在我的iPad应用程序中,我使用了
UISplitViewController
,其中主视图包含表视图,而详细视图包含
UIViewController
。在按钮上,事件详细视图位于主视图之上,代码如下所述。这段代码在iPad3.2上运行良好,但在iOS4.2上不起作用

UIViewController *leftUIV = [appDelegate.splitViewController.viewControllers objectAtIndex:0];  
UIViewController *rightUIV = [appDelegate.splitViewController.viewControllers objectAtIndex:1];  
CGRect rectMaster = leftUIV.view.frame;  
CGRect rectDetail = rightUIV.view.frame;  
rectMaster.size.width = 0;
rectDetail.size.width = 1024;  
rectDetail.origin.x = 0;  
[leftUIV.view setFrame:rectMaster];  
[rightUIV.view setFrame:rectDetail];

请帮忙,我该怎么解决呢?

我想你在试图做一些不受支持的事情。无法调整拆分的大小:拆分的大小是固定的


如果您想在横向模式下临时仅显示局部视图,或许可以从视图层次结构中删除分割视图,只添加局部视图,然后在完成后将其交换回?

我认为您正在尝试执行不受支持的操作。无法调整拆分的大小:拆分的大小是固定的


如果您想在横向模式下临时仅显示局部视图,也许可以从视图层次结构中删除分割视图,只添加局部视图,然后在完成后将其交换回原位?

最终在现场得到答案


多亏了-Alice Bevan和McGregor终于在现场得到了答案


感谢-Alice Bevan和McGregor将此添加到您的DetailViewController.m

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [self.view sizeToFit];

    NSLog(@"ROTATE - self.view.frame = %@", NSStringFromCGRect(self.view.frame)); 
}

将此添加到DetailViewController.m

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [self.view sizeToFit];

    NSLog(@"ROTATE - self.view.frame = %@", NSStringFromCGRect(self.view.frame)); 
}

但实际上它在iPad3.2设备上运行良好。虽然移除分割视图不是一个好主意,但我尝试以模式显示细节视图,但最终也没有成功。实际上,移除分割视图和添加细节视图的方式略有不同,我们可以全屏显示细节视图。但实际上,它在ipad 3.2设备上运行良好。虽然移除分割视图不是个好主意,但我尝试以模式显示细节视图,但最终也没有成功。实际上移除分割视图和添加细节视图的方式略有不同,我们可以全屏显示细节视图。请注意:如果您在按照本解决方案中所述显示细节屏幕后,在细节屏幕上出现旋转问题,这里有一个轻微的调整,以使转换正常工作:使用NavController作为应用程序的rootViewController。如果隐藏导航栏,则可以将splitView添加到导航控制器。如果您现在想全屏显示detailView,只需将NavController的viewController从SplitView更改为detailView。注意:如果您在按照本解决方案中所述显示detailScreen后,在detailScreen上出现旋转问题,这里有一个轻微的调整,以使转换正常工作:使用NavController作为应用程序的rootViewController。如果隐藏导航栏,则可以将splitView添加到导航控制器。如果您现在想全屏显示detailView,只需将NavController的viewController从SplitView更改为detailView。