2011-03-04 63 views
0

application:didFinishLaunchingWithOptions:我加入一个拆分视图:UISplitView:细节视图不可见

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

splitViewController来自于应用委托加载NIB,是非常简单的一个,与左边的表视图,右边的一些自定义视图。

splitViewController我不会回来,如果interfaceOrientation或者是UIInterfaceOrientationPortraitUIInterfaceOrientationPortraitUpsideDown(它更有意义,我最多只在第一次运行出现这样)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:是责怪。我该如何解决这个问题?

回答

0

猜猜...在Xcode4下运行完全相同的代码工作得很好。 因此,我不清楚Xcode3.x下有什么问题,或者更可能是iOS模拟器。

+0

你有没有重温这个问题?我在运行iOS 4.2的iPad上间歇性地执行完全相同的问题,但不在运行4.3的设备上。设备重启可以解决问题。这很奇怪... – jmans 2011-05-14 02:30:35

相关问题