2009-10-22 119 views
3

我有一個標籤欄控制器管理4個選項卡。我已將子選項卡欄控制器分類,以便shouldAutorotateToInterfaceOrientation:方法僅允許其中一個選項卡中的特定視圖控制器進行旋轉。一切工作都很好:其餘選項卡中的控制器不會旋轉。但是,當允許旋轉的視圖控制器實際旋轉時,如果用戶點擊其中一個選項卡,相應的視圖控制器也會出現旋轉(即使其shouldAutorotateToInterfaceOrientation方法顯式返回NO)。如何防止標籤欄控制器中的視圖控制器旋轉?

如何防止這種情況發生?

要清楚,這裏是一個例子。點擊標籤0,1或2並嘗試旋轉設備,沒有任何反應(正確)。輕敲標籤4並旋轉設備,旋轉(正確)旋轉與標籤4的視圖控制器相關的視圖。現在,仍然握住iPhone在旋轉的橫向方向並點擊另一個選項卡(0,1或2)會顯示一個旋轉的視圖(這是不正確的,我試圖避免)。

回答

1

這是一個常見的「錯誤」 - 但是一個很好的解決方法是強制shouldAutorotateToInterfaceOrientation:選擇如下被觸發:

- (void)viewDidAppear:(BOOL)animated { 
    UIWindow *window = [[UIApplication sharedApplication] keyWindow]; 
    UIView *view = [window.subviews objectAtIndex:0]; 
    [view removeFromSuperview]; 
    [window addSubview:view]; 
} 
相關問題