在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