我似乎有這個職位相反的問題:自動旋轉適用於iOS 6,但給人怪異的行爲在iOS 5中
Autorotate in iOS 6 has strange behaviour
當我提交付費應用到蘋果時,Xcode讓我更新到iOS 6在我的測試設備上。我使用XCode中的GUI將我的應用設置爲僅在iPhone上以縱向模式顯示,並且僅在iPad上以橫向模式顯示。這在我的iOS 6 iPhone和iPad上效果很好。然而,在iOS 5中,iPad允許應用程序旋轉爲肖像,在不應存在的信箱狀黑色區域中顯示我的按鈕,並重復崩潰。
我正在使用導航控制器和故事板。
我知道shouldAutorotateToInterfaceOrientation被棄用的iOS 6,但認定它應該還是在iOS 5中被調用,我嘗試這樣做:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
if ((UIDeviceOrientationIsLandscape(UIDeviceOrientationLandscapeLeft))||(UIDeviceOrientationIsLandscape(UIDeviceOrientationLandscapeRight))) {
return YES;
}
else return NO;
}
else
{
if ((UIDeviceOrientationIsLandscape(UIDeviceOrientationPortrait))||(UIDeviceOrientationIsLandscape(UIDeviceOrientationPortraitUpsideDown))) {
return YES;
}
else return NO; }
// Return YES for supported orientations
}
上面的代碼,似乎什麼也沒有做。我把它放在我的每個視圖控制器中;看起來我應該把它放在我的導航控制器中,但是因爲我用圖形設置了它,所以我不知道該怎麼做。我是否必須繼承我的導航控制器並在代碼中做所有事情?必須有一種方法來爲此使用故事板設置!
(注:我沒有使用自動版式,顯然不能因爲一些舊部件的我,包括我的軟件,只是普通的不喜歡。)
什麼導致此?我想在太多人購買應用程序並投訴之前修復它!在此先感謝...
謝謝@Bek!在下半部分,我認爲你的意思是如果風景,NO和其他YES ...奇怪的是,如果我嘗試調用UIDeviceOrientationIsPortrait,但它似乎不適用於PortraitUpsideDown,但是使用IsLandscape並反轉邏輯的確行得通。 – Jeanne
對不起 - 我只是複製你所擁有的,並沒有打擾翻轉邏輯。很高興它對你有效!爲了顛倒,似乎並沒有像UIDeviceOrientationIsPortrait這樣的宏功能。我通常只是這樣做:return interfaceOrientation!= UIDeviceOrientationPortraitUpsideDown允許所有的旋轉,除了倒置,而不是做所有的宏。 – Bek