我有一个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