我正在Xcode 4中構建iPad應用程序。該應用程序始終顯示在橫向視圖中。爲實現此目的,我嘗試了以下操作:iPad停止屏幕旋轉Xcode 4
- 在「目標摘要」屏幕中,我僅選擇了Landscape Left作爲受支持的設備Orentation。
- 在目標信息屏/ Info.plist中設置支持的接口方向(新iPad)爲橫向(左home鍵)
這導致了應用程序的要在橫向模式下啓動,但如果我旋轉設備它仍然改變其方向。此外,當我有一個UIViewController呈現與presentationStyle UIPresentationFormSheet它旋轉到肖像它顯示的時刻。
在一些其他線程/論壇,它被勸創造的UIViewController類別和重寫
-(UIDeviceOrientation)interfaceOrientation;
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
,除非你旋轉總是旋轉設備的方向(LandscapeLeft)或明確LandscapeLeft,也沒有自動旋轉LandscapeLeft。
當我像這樣設置這些函數(或者,例如,根本不允許旋轉),應用程序總是以縱向模式顯示,並且不會旋轉,甚至不會傳送到LandscapeLeft。在橫向模式下啓動應用程序的唯一方法是當我允許旋轉時,無論interfaceOrientaton是什麼。
有人知道我能如何解決這個問題嗎?
我實現的類別:
@implementation UIViewController(Extends)
-(UIDeviceOrientation)interfaceOrientation
{
return [[UIDevice currentDevice] orientation];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
return YES;
else
return NO;
}
@end
,我可以找到被定義縱向放置的地方是在MainWindow.xib中原來的窗口,但是這不能改變,並且每個線程/論壇說特定的設置是/不應該成爲問題。
的問題,如果你不讓它旋轉是應用aparantly總是開始於人像,如果你定義它應該是在景觀,它做的第一件事就是切換到橫向,所以如果你禁止它改變它永遠不會出現在風景中。 我改變了它,讓shouldAutorotateToInterfaceOrientation在兩種風景模式下都返回YES,這似乎解決了這個問題。它仍然只允許一個橫向(主頁按鈕左),因爲它是在Info.plist中設置的。 您的回答確實幫助我弄清楚了應用程序的內部工作原理。 – ophychius