2010-07-06 83 views
0

shouldAutorotateToInterfaceOrientation肯定被稱爲...但是當我旋轉iphone ...或模擬器......沒有任何改變。iPhone 3.x和4.x:shouldAutorotateToInterfaceOrientation返回TRUE,但沒有任何反應

我以爲所有我必須做的是這樣的:

-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    NSLog(@"this is being called ok"); 
    return(YES);  // Or return(TRUE); 
} 

但我想還有別的東西,我需要設置????

+0

您是否在當前屏幕上的所有UIViewControllers中將此設置爲'YES'(在Objective-C中優先於'TRUE',但都可以)? – 2010-07-06 15:16:27

+0

我嘗試了YES和TRUE(沒有改變)。 我將如何找到「當前在屏幕上的所有視圖控制器」? 我在我的1選項卡欄上有4個XIB:Main ...和3個選項卡。 3 * .m文件。 (每個XIB爲1)...然後是應用程序委託* .m文件。 我只需要一個選項卡以允許旋轉。 我是否還需要將shouldAutorotateToInterfaceOrientation出現在4個不同的地方?或者只有在我需要旋轉的1中?或只在應用程序代表? – Helen 2010-07-06 17:34:21

回答

0

我認爲所有的視圖控制器添加到標籤欄控制器必須支持方向,以便標籤欄控制器支持它(默認情況下,UIViewController只支持縱向方向)。否則,如果您將界面旋轉到支持該界面的選項卡上,則該界面會受到損壞,然後切換到不支持的選項卡。

+0

所以答案是「必須出現在4個不同的地方」?我確信我在其他應用程序中看到「只有一些視圖旋轉,其他視圖不」。如果標籤視圖2允許旋轉,那麼究竟是「損壞的」......但是標籤3禁止它?另外...什麼是最簡單的寫*一個* shouldAutorotateToInterfaceOrientation的副本,讓它出現在我的代碼中4次(沒有剪切/粘貼)? – Helen 2010-07-06 17:58:45

+0

旋轉時,標籤欄和狀態欄也會旋轉。因此,如果其中一個標籤保持縱向,則會變得更窄(加上它現在與標籤相比橫向),迫使用戶傾斜頭部(或向後旋轉)。並且用戶不喜歡被迫去做事情:-) 如果你*真的*不想在四個地方複製幾行,你可以創建一個UIViewController子類來覆蓋shouldAutorotateToInterfaceOrientation並且派生其餘的你的視圖控制器。 – Brian 2010-07-06 19:28:03

相關問題