2012-02-06 46 views
0

我知道這個問題一直有人問及其他人已經發布的解決方案,但仍然感到很困惑的話題,所以我很抱歉如果這真的是一個「 noob「問題。不是隻旋轉一個標籤欄視圖控制器中的一個視圖

所以我有一個標籤欄視圖控制器,我有2個應該自動旋轉的視圖和一個永遠不應該。我的理解是,shouldAutorotateToInterfaceOrientation需要總是返回YES;以便任何視圖控制器自動旋轉。所以如果是這樣的話,我將如何獲得只有一個不旋轉但保持訂單旋轉?

非常感謝!

P.S.我在這裏發現了一個不同的帖子:How to prevent the view controllers in a tab bar controller from rotating?,但沒有運氣。從職位的答案是下面貼

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

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

發佈您的'shouldAutorotateToInterfaceOrientation'方法代碼。我們會先檢查它們=) – Nekto 2012-02-06 08:49:53

+0

感謝您的快速回復。我只是將shouldAutoRotateToInterfaceOrienation設置爲返回YES;但之前我也有它設置爲返回(interfaceOrientation == UIInterfaceOrientationPortrait); <---導致任何地方都沒有旋轉。 – Teddy13 2012-02-06 08:55:44

+0

是否有更多的方法可以參與其中?謝謝! – Teddy13 2012-02-06 08:56:07

回答

1

行爲你目標是與UITabBarController s的輪換規則發生衝突。你自己提到:

shouldAutorotateToInterfaceOrientation需要 總是爲了回報是任何視圖控制器自動旋轉。

但是你想要的是其中一個視圖控制器返回NO,這違反了該規則。因此,要回答您的問題,您必須實現自己的自定義視圖控制器容器(或自定義視圖)。

這個限制被添加到UITabBarController s有一個很好的理由。具有不同旋轉規則的標籤對用戶來說會很煩人,因爲每次他們改變標籤時,屏幕都會一直旋轉。

現在,如果我是你,我將允許我的所有標籤旋轉,然後將非旋轉視圖呈現爲模態視圖。

+0

謝謝!但是,將非旋轉視圖呈現爲模態視圖意味着什麼?對不起,我對此有點新穎 – Teddy13 2012-02-06 09:42:14

+0

模態視圖與「對話框」的概念相似。你應該看看這裏的一些解釋https://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html – 2012-02-06 12:29:57