我有一個UIViewController與連接到幾個UIViews的IBOutlets。各種按鈕在視圖之間切換,但是當我爲控制器設置新視圖時會出現問題。控制器和視圖都處於橫向模式,但在第一對開關後,某些視圖以縱向模式顯示。什麼可能導致這種情況?切換視圖控制器視圖時出現奇怪的行爲?
回答
檢查是否已在所有視圖中啓用這種方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
此外,有你在模擬器或設備上看到了什麼?
您應該檢查您的所有UIViewControllers實施方法shouldAutorotateToInterfaceOrientation
。該方法告訴操作系統在哪個位置(屏幕方向)UIViews
由該控制UIViewControllers可以顯示。
如果要將所有視圖僅以橫向顯示,那麼該方法僅應返回YES
或interfaceOrintation == UIInterfaceOrientationLandscapeLeft
或interfaceOrintation == UIInterfaceOrientationLandscapeRight
。如果你只想要肖像方向,那麼interfaceOrintation == UIInterfaceOrientationPortrait
。
例如(只支持橫向模式):
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
而且你應該檢查你的項目設置,設置適當的支持的設備取向(又稱支持的接口方向)。
是的,我已經完成了所有這些。正如我所說,它顯示一次罰款,然後幾個開關後停止工作。 – Jumhyn
我認爲你應該在IB中將視圖設置爲橫向模式。如果這已經完成,那麼我會建議不要明確地更改視圖控制器的視圖。實現一種可以改變視圖的方法。
詳細信息:
將視圖設置爲您的視圖控制器的視圖,然後每個其他視圖應該是此視圖的子視圖。您可以通過移除所呈現的視圖並添加新視圖或其他方法來實現視圖更改,從而將所有視圖添加到IB中作爲子視圖,隱藏所有視圖,然後在想要更改時取消隱藏所需視圖並隱藏所有其他。
我希望你能理解我的方法,如果不是,那麼我在這裏回答你的問題。
這種方式很容易實現。 :)
這可能是一個模擬器錯誤,但嘗試使用單獨的UIViewController對象爲每個視圖,而不是一個控制器的所有視圖。就我個人而言,我從來沒有遇到任何方向上的困難,但我以編程方式做事。我建議你也這樣做(你可能不需要轉換所有程序的xib文件,但可能只是你遇到問題的那個)。只要確保你用於該視圖的所有UIViewController都有:shouldAutorotateToInterfaceOrientation
就可以正確設置,並且事情應該可以正常工作。
希望這會有所幫助。
不要重複回答 – Nekto
- 1. iPad/iOS7:'頁面'模式視圖控制器在呈現'全屏'視圖控制器後出現奇怪行爲
- 2. UITableViewController在彈出視圖控制器後的奇怪行爲
- 3. 切換視圖控制器
- 4. 切換視圖時奇怪的用戶界面行爲(滑入)
- 5. 奇怪的視圖行爲
- 6. 分割視圖控制器的導航欄的奇怪行爲
- 7. 表視圖控制器的奇怪行爲
- 8. 觸摸視圖時的「奇怪」行爲
- 9. 路線,視圖,控制器和模型行爲奇怪,緩存
- 10. IIViewDeckController切換視圖 - 控制
- 11. 添加子視圖細胞視圖,示出奇怪的行爲
- 12. 奇怪的換行符出現在我的視圖
- 13. 奇怪網頁視圖+ baseURL時行爲
- 14. 當繪製超級視圖時NSSegmentedControl的奇怪繪圖行爲
- 15. Objective-C切換視圖控制器
- 16. 在視圖控制器之間切換
- 17. 高效切換視圖控制器
- 18. StoryBoard - 視圖控制器如何切換?
- 19. 多視圖控制器的視圖之間切換
- 20. 切換視圖時出現SIGABRT
- 21. 從子視圖控制器切換到父視圖控制器 - iOS
- 22. 在單一視圖控制器中切換多個視圖控制器iOS
- 23. iOS:在當前模態視圖控制器後面切換視圖控制器?
- 24. UIKit控制器/視圖在視圖之間切換?
- 25. 重疊視圖時奇怪的輸出..?
- 26. 使圖像視圖不再出現在視圖控制器上
- 27. 的UISearchBar子視圖奇怪的行爲
- 28. 在同一視圖的視圖之間進行iOS切換控制器
- 29. 從子視圖控制器呈現主視圖控制器
- 30. 收集視圖中的奇怪行爲
只是猜測,viewWillAppear的默認實現中有代碼檢測方向併爲橫向模式準備視圖。如果在改變視圖之前,你會調用新視圖的viewWillAppear? – morningstar
UIView沒有-viewWillAppear方法。我做了你用UIViewController的-viewWillAppear建議的,但沒有改變。 – Jumhyn
你的所有觀點都應該是在風景中,還是在肖像中的一些? – msgambel