2011-10-26 37 views
1

我正在使用與導航控制器關聯的選項卡欄的iphone應用程序。在其中一個控制器中,我有一個表視圖,顯示了一些列表,以及何時選擇了一行,另一個視圖顯示特定的信息和一個按鈕來查看一些相關的照片。在iPhone設備上旋轉處理橫向顯示

我在橫向顯示照片視圖時出現問題。

照片視圖控制器包含一個UIImageView,一次顯示一張照片,此ImageView對象大小爲320x460,以全屏模式顯示。爲了處理旋轉我已經添加下面的代碼:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

但它不旋轉和iPhone模擬器狀態欄仍處於縱向位置,所以不旋轉了。

我也改變了這樣的方法:

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

還是關於設備旋轉沒有變化。 項目 - >摘要(選項卡) - >支持的設備方向 - >所需的方向中的選項明確啓用橫向模式(右/左)。

你能幫我瞭解我可能錯過了什麼嗎?

THX幫助,

斯特凡

回答

2

使用標籤欄控制器時,它只會在您的視圖控制器爲全部您的標籤允許定位時纔會旋轉。有點討厭,但它是。您需要在所有其他視圖控制器中重寫shouldAutorotateToInterfaceOrientation,並且它們需要能夠順利地適應這些方向。

如果它是不實際的,以支持其他視圖控制器橫向放置,也許你可以通過繼承的UITabBarController和覆蓋其shouldAutorotateToInterfaceOrientation,而不是返回YES如果當前視圖控制器返回YES嘗試一些黑客攻擊,例如。但是這可能會導致您的應用因爲不符合人機界面指南而被拒絕,因爲您試圖繞過標準接口行爲。

+0

你認爲我可以調用視圖模式可以解決這個問題? – Steve

+0

只是重寫視圖控制器中的'shouldAutorotateToInterfaceOrientation'方法,由選項卡控件打開並使用上面的代碼:) –

+0

@StephaneKouakou我不知道旋轉模式視圖控制器從標籤欄控制器推送時會發生什麼。 – morningstar

0

檢查,如果你在某種子類化容器視圖控制器(如自己的UINavigationController或子類的UITabBarController)的不是。如果是這種情況,請確保它不覆蓋shouldAutorotateToInterfaceOrientation:方法。

+0

沒有任何的:)) – Steve

-1

你找錯了地方:在你的RootViewController.m文件中查找以下代碼:

#elif GAME_AUTOROTATION == kGameAutorotationUIViewController 
// 
//lots of useless comments 
// 
return (UIInterfaceOrientationIsPortrait(interfaceOrientation)); //THIS LINE HERE 
// return (UIInterfaceOrientationIsLandScape(interfaceOrientation)); 

,說回報(UIInterface ...人像)線是決定你的應用程序的旋轉行能力。你可以改變這一點,讓你能夠完全旋轉,保持在一定的方向,或任何你想要的...

相關問題