我最近遇到了一個問題。我的iPad應用程序以某種方式阻止iPad自動旋轉。我的應用程序爲兩個視圖控制器加載一個UISplitView,併爲shouldAutorotateToInterfaceOrientation返回YES。我已經建立了我的info.plist,以包含所有四個方向的「支持的界面方向」鍵。但是,當我運行應用程序時,旋轉設備不會旋轉splitView(即使我正在接收UIDeviceOrientationDidChangeNotification)。另外,當我以不同的方向退出我的應用程序時,它在iPad主屏幕中開始不會自動旋轉到正確的視圖,直到我再次旋轉它而沒有運行我的應用程序....任何想法都將不勝感激...UiSplitViewController不自動旋轉
回答
UISplitViewController
是我曾經使用過的最氣質的視圖控制器子類之一。爲了使其「完美」工作,它必須必須作爲應用程序窗口中的單個根視圖存在。但是,你可以用一些欺騙手段解決這個問題 - 在我的情況下,我需要一個UITabBarController
以及至少兩個不同的UISplitViewController
作爲視圖控制器 - 但是你必須考慮涉及旋轉和UISplitViewControllerDelegate
回調沒有觸發的奇怪情況。
這裏的希望,Apple的UISplitViewController
在未來其他UIKit
組件更兼容...
你說你的第一個問題是,UISplitView阻止你自動旋轉。嘗試使用Splitview的子類,而不是使用ENVILE自動旋轉:
@implementation SplitViewControllerRotating
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
NSLog(@"SplitViewControllerRotating shouldAutorotate");
return YES;
}
@end
你的第二個問題聽起來很奇怪。你說退出你的應用程序後,你必須旋轉,以便您的iPad識別面向接口。不能幫助你。
我現在有同樣的問題。原因是我不小心將的另一個視圖添加到了UISplitViewController視圖的窗口中。刪除額外的視圖使其工作。
你的UISplitViewController設置爲你的根視圖控制器嗎?否則,這可能是您的問題的原因。我有一個類似的問題 - 狀態欄會旋轉,但我的細節和主視圖將保持原樣。我重新安排了視圖,以便UISplitViewController是根,然後我的「主菜單」作爲分割視圖頂部的模式視圖控制器呈現,並且使旋轉問題消失。
根據iPad Programming Guide,「分割視圖控制器的視圖應始終安裝爲應用程序窗口的根視圖。」
希望這會有所幫助。
我碰到了同樣的問題有兩個下屬UINavigationControllers。在我的情況下,旋轉開始工作,一旦我取代了shouldAutorotateToInterfaceOrientation:在左側控制器中總是返回'YES'。
masterView和detailView都需要支持YES,無論您想要旋轉的方向如何。如果其中一個沒有返回YES,它將不會旋轉。我錯過了這個微妙的細節,我的masterView只支持肖像。希望這可以幫助別人。 – sasquatch 2012-02-09 16:56:05
我發現這做工精細 - 提供UISplitViewController
的兩個孩子實施shouldAutorotateToInterfaceOrientation
:
I.e如果您有類似:
MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPad" bundle:nil];
UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:nil];
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController];
self.window.rootViewController = self.splitViewController;
來定義你的NSApplication
的rootViewController
那麼兩個MasterViewController
和DetailViewController
應該實現:
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}
,以確保旋轉的作品。
- 1. UISplitViewController - 有沒有自定義實現自動旋轉的方法?
- 2. UISplitViewController沒有正確旋轉
- 3. UISplitViewController與模式segue不旋轉
- 4. 當modalView旋轉時,iPad的UISplitViewController旋轉不好
- 5. MPMovieViewController不自動旋轉
- 6. UIScrollView不會自動旋轉
- 7. MPMoviePlayerViewController不會自動旋轉
- 8. 手動旋轉UIViews而不是自動旋轉
- 9. MPMoviePlayerController自動旋轉?
- 10. 旋轉自動化
- 11. UIViewController自動旋轉?
- 12. 使Android旋轉木馬自動旋轉
- 13. Modal在旋轉後消失UISplitViewController
- 14. UISplitViewController EXC_BAD_ACCESS上旋轉使用ARC
- 15. UISplitViewController詢問照片許可旋轉時
- 16. UISplitViewController無法識別設備旋轉
- 17. 帶UIPopoverController的UISplitViewController在旋轉時崩潰
- 18. 自動滾動(旋轉)UL
- 19. 旋轉屏幕而不開啓自動旋轉
- 20. iOS5打破UISplitViewController旋轉回調,如何手動調用?
- 21. Krpano自動旋轉不起作用
- 22. 佈局不會自動旋轉
- 23. 分類? UITabBarController不會自動旋轉
- 24. iOS 5自動旋轉不起作用
- 25. UIWindow子視圖不會自動旋轉
- 26. Ipad模擬器不自動旋轉
- 27. 自動旋轉不起作用ios6.1
- 28. UIViewController自動旋轉不起作用
- 29. android動畫旋轉不會旋轉ccw
- 30. IOS旋轉設備不旋轉動畫
你可以繞過它欺騙你說...什麼欺騙?你逗弄! – radven 2012-07-12 10:11:19
它只是手動轉發適當的旋轉方法。記錄一堆東西,看看有什麼方法,我們沒有被調用。然後,我只是在我的根視圖控制器子類中進行補償,確保子視圖控制器獲得了正確的方法,調整了視圖的大小等。 – LucasTizma 2012-07-12 14:05:07
我現在有同樣的問題,有我的SplitViewController,它們是TabBarController下的選項卡,行爲不穩定,所以很高興知道這不僅僅是我!至少感謝這種安慰! – Gowiem 2013-04-11 22:46:21