UISplitViewController detailViewController子视图未在方向更改时正确调整大小

时间:2010-07-30 16:14:14

标签: ipad uisplitviewcontroller

HI, 我的iPad应用程序中有以下设置:

UISplitViewController DetailSide->         SomeDetailViewController->         添加了子视图[SomeDetailViewController.view addSubview:AnotherViewController.view]

  1. 现在在启动“AnotherViewController视图”后启动时,其初始尺寸始终与最后一个方向相同(界面构建器中的potrait / landscape视图)我保存了该视图XIB,与当前设备方向无关

  2. 同时重置添加的子视图的帧(AnotherViewController.view),即A. In - [SomeDetailViewController viewDidLoad]检查当前设备方向B.设置AnotherViewController.view的帧以匹配所需的大小。此后它没有适当调整大小(我在XIB自动调整框中正确设置了弹簧/支柱),方向更改。

  3. 在执行上面的步骤2.之后,我确实看到来自底部的大约一半的AnotherViewController.view没有响应任何触摸,看起来由于帧中的变化,响应的坐标变得混乱。

  4. 我实现了“shouldAutorotateToInterfaceOrientation”,为所有视图控制器中的所有方向返回YES。

  5. TIA。

2 个答案:

答案 0 :(得分:0)

在XIB中,可以选择在Inspector中更改SPlitview Detail / Master。此外,如果您将其添加为子视图,则无法获取splitview委托方法,因此您需要将其添加到窗口。尝试使用

从窗口中删除所有元素

[[[[UIAppDelegate window] subviews] objectAtIndex:0] removeFromSuperview]; self.appDelegate.splitViewControllerObject = [[UISplitViewController alloc] init];

UINavigationController * rootNav = [[UINavigationController alloc] initWithRootViewController:masterview]; UINavigationController * detailNav = [[UINavigationController alloc] initWithRootViewController:detailview];

    self.appDelegate.splitViewControllerObject.viewControllers = [NSArray arrayWithObjects:rootNav, detailNav, nil];
    self.appDelegate.splitViewControllerObject.delegate = detailviewobj;

    [UIAppDelegate.window addSubview:self.appDelegate.splitViewControllerObject.view];
祝你好运....

答案 1 :(得分:0)

您应该将自动调整大小属性设置为AnotherViewController.view

  

AnotherViewController.view.view.autoresizingMask   = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;