在application:didFinishLaunchingWithOptions:
我加入一个拆分视图:UISplitView:细节视图不可见
[self.window addSubview:splitViewController.view];
[self.window makeKeyAndVisible];
splitViewController
来自于应用委托加载NIB,是非常简单的一个,与左边的表视图,右边的一些自定义视图。
在splitViewController
我不会回来,如果interfaceOrientation或者是UIInterfaceOrientationPortrait
或UIInterfaceOrientationPortraitUpsideDown
(它更有意义,我最多只在第一次运行出现这样)shouldAutorotateToInterfaceOrientation:
。
当我在模拟器(SDK 4.2)中运行我的应用程序时,模拟器按照我的预期旋转到横向,但细节视图不可见(为黑色)。左侧的表格视图非常好。
有趣的是,当我向左或向右旋转模拟器2次时,细节视图变为可见,如预期的那样。
看来,在开始时细节视图是后面的一些其他视图,我通过登录每个视图控制器的帧(在shouldAutorotateToInterfaceOrientation:
)检查它:
Details VC frame: {{0, 20}, {768, 1004}}
SiteSelection frame: {{0, 20}, {768, 1004}}
SPLIT VC frame: {{0, 20}, {768, 1004}}
另外,拆分视图控制器子视图给出:
v: <UIView: 0x5c32d60; frame = (0 20; 768 1004); layer = <CALayer: 0x5c335e0>>
v: <UILayoutContainerView: 0x5c94dc0; frame = (0 0; 768 1004); clipsToBounds = YES; layer = <CALayer: 0x5c94e10>>
如此看来,由于某种原因,表视图正在整个iPad的窗框,并与详细的自定义视图重叠。
这是正确的吗?这背后的原因是什么?在NIB中一切似乎都很好。我怀疑shouldAutorotateToInterfaceOrientation:
是责怪。我该如何解决这个问题?
你有没有重温这个问题?我在运行iOS 4.2的iPad上间歇性地执行完全相同的问题,但不在运行4.3的设备上。设备重启可以解决问题。这很奇怪... – jmans 2011-05-14 02:30:35