2010-09-15 75 views
0

我有一個視圖控制器管理視圖。UIView子視圖不改變方向

我將我的視圖控制器子類添加爲交換另一個視圖的窗口的子視圖。

我在iPad上運行橫向模式。

該視圖顯然不知道它在橫向模式下。它的框架很混亂。

有什麼我可以/應該做的,以告訴它它的景觀,和/或方向已經改變。這通常如何發生。爲什麼不發生?

我曾經有我的視圖控制器在UITabBarController內,它在那裏工作得很好。

回答

0

覆蓋:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return YES; 
} 
+0

那已經在那裏了。這不是問題。 – David 2010-09-15 22:24:04

0

您的視圖控制器是沒有得到旋轉事件,因爲你已經沒有出現的viewController,但添加了的viewController的視圖層次視圖。

您的選項卡欄控制器以前用於負責將旋轉事件轉發給它管理的視圖控制器,這是它用來工作的方式。

我雖然建議交換窗口視圖是一個壞主意。相反,你應該有一個主視圖控制器,它接受旋轉事件,然後根據當前方向在此視圖控制器內交換視圖。在進一步編碼之前考慮重新設計。

+0

你是否建議有我自己的根視圖控制器和交換子視圖?其中一種觀點是UISplitView,它似乎並不喜歡這樣。但也許我沒有說足夠的話,或者轉發了足夠多的事件。是否有切換視圖的最佳方式的示例? – David 2010-09-15 22:22:43

+0

如果你使用的是splitViewController,恐怕分割視圖控制器應該總是一個主視圖控制器。旋轉事件不需要被明確地傳遞。這些消息是並且應該在內部發送。旋轉之後交換視圖並不令人滿意。旋轉發生時,UI會突然切換。發生旋轉時,視圖應使用正確的自動調整掩碼設置進行調整。但是,如果你有這樣的要求,你可以繼續我的建議+,前提是你不會將視圖拆分爲子視圖,因爲它會獲得輪換事件。 – 2010-09-17 06:46:52

0

我的問題是,我的故事板覆蓋了我現有的自定義編碼的應用程序委託。在我刪除了故事板文件和自定義生成的視圖控制器代碼之後,它對我有用。