自從切換到Xcode 4和iOS 5以來,我無法讓我的應用程序旋轉。撕掉我的頭髮後,我創建了一個全新的測試項目,以查看是否可以讓一個裸露應用程序旋轉。爲什麼我的應用程序不能在Xcode 4/iOS5中旋轉?
我使用'Empty Application'模板創建了測試項目。我添加到這個模板中的所有東西都是一個UINavigationController,並將UIViewController推送到它上面。 UIViewController有一個nib文件,其中一個標籤上寫着'Hello'。
在目標摘要屏幕上,我單擊了「支持的設備方向」的所有按鈕。
在爲導航和瀏覽器的代碼.m文件,我改變shouldAutoRotate ...到:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (YES);
}
測試項目編譯沒有問題,運行完美。有一個導航欄和友好的'你好'的消息,但是這件事不會旋轉!
顯然,我錯過了一些非常簡單的事情,但我無法弄清楚它是什麼。我懷疑是在.nib上。在「模擬度量」下,有一個稱爲方向的屬性。這被設置爲肖像。唯一的其他選擇是'景觀'。如果我將此設置更改爲「橫向」,則.nib編輯器中的視圖將更改爲橫向,但是當我運行該應用程序時,它將以縱向模式運行,但仍然拒絕旋轉。
希望有人能從我的錯誤中大笑,並指出我犯的愚蠢錯誤。請做!
我實際上沒有這樣的線路在我的根視圖控制器,但你讓我感受到解決方案的氣味。在applicationDidFinishLaunchingWithOptions中,我一直在做:[self.window addSubview:nav.view],我猜是有點老派。我需要做的是:[self.window setRootViewController:nav]。這固定了旋轉問題,但我不確定爲什麼。第一種方式對我來說工作得很好。我需要了解這一點,並找出爲什麼它不再有效。謝謝! – John
添加到窗口的最後一個視圖是接收旋轉事件的視圖;如果您在nav.view之後向窗口添加另一個視圖,那可能是因爲事情不適合您。 – Kevlar
正在更新一箇舊項目和setRootViewController:事情是這個問題。謝謝,約翰! – MacD