我有一个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. 切换视图控制器
- 2. 奇怪的视图行为
- 3. IIViewDeckController切换视图 - 控制
- 4. Objective-C切换视图控制器
- 5. 在视图控制器之间切换
- 6. 高效切换视图控制器
- 7. 多视图控制器的视图之间切换
- 8. 切换视图时出现SIGABRT
- 9. 从子视图控制器切换到父视图控制器 - iOS
- 10. 用XCode故事板切换视图控制器时出现黑屏
- 11. 离子视图奇怪的行为
- 12. 收集视图中的奇怪行为
- 13. 视图 - 控制释放导致崩溃或奇怪的现象
- 14. 呈现视图控制器
- 15. UInavigation控制器不工作切换视图控制器到tableviewcontroller
- 16. 从一个视图控制器模式切换到另一个视图控制器后,视图完全黑色
- 17. 切换视图不会切换角度控制器
- 18. 与视图控制器的框架的奇怪
- 19. 当呈现视图控制器时UIViewControllerHierarchyInconsistency
- 20. 呈现视图控制器时崩溃
- 21. 从所呈现的视图控制器访问呈现视图控制器?
- 22. 试图呈现模态视图控制器时出错
- 23. 奇怪的模态视图控制器NSException错误
- 24. 从一个UITableView控制器切换到视图 - 控制
- 25. 在电影播放结束时切换视图控制器?
- 26. 切换视图控制器时iOS崩溃
- 27. 我在切换视图控制器时在Xcode中有错误
- 28. 从子视图切换视图出现问题
- 29. 可以呈现视图控制器也是一个呈现视图控制器?
- 30. 辞退呈现视图控制器,呈现视图控制器已经发布
只是猜测,viewWillAppear的默认实现中有代码检测方向并为横向模式准备视图。如果在改变视图之前,你会调用新视图的viewWillAppear? – morningstar
UIView没有-viewWillAppear方法。我做了你用UIViewController的-viewWillAppear建议的,但没有改变。 – Jumhyn
你的所有观点都应该是在风景中,还是在肖像中的一些? – msgambel