簡體   English   中英

如何防止標簽欄控制器中的視圖控制器旋轉?

[英]How to prevent the view controllers in a tab bar controller from rotating?

我有一個標簽欄控制器管理4個標簽。 我已經將tab鍵控制器子類化,因此shouldAutorotateToInterfaceOrientation:方法只允許其中一個選項卡中的特定視圖控制器旋轉。 一切都很好:其余標簽中的控制器不會旋轉。 但是,當允許旋轉的視圖控制器實際旋轉時,如果用戶點擊其中一個剩余的選項卡,相應的視圖控制器也會顯示為旋轉(即使它的shouldAutorotateToInterfaceOrientation:方法顯式返回NO)。

我該如何防止這種情況發生?

需要說明的是,這是一個例子。 點擊標簽0,1或2並嘗試旋轉設備,沒有任何反應(正確)。 敲擊標簽4並旋轉設備,與標簽4的視圖控制器相關聯的視圖被旋轉(正確)。 現在,仍然將iPhone保持在旋轉的橫向方向並點擊另一個標簽(0,1或2),顯示旋轉的視圖(這是不正確的,我試圖避免)。

這是一個常見的“錯誤” - 但是一個好的解決方法是強制如下觸發shouldAutorotateToInterfaceOrientation:選擇器:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM