在视图控制器之间切换时自动旋转
Posted
技术标签:
【中文标题】在视图控制器之间切换时自动旋转【英文标题】:Auto Rotate while switching between View Controllers 【发布时间】:2012-08-28 10:00:47 【问题描述】:我在编程时遇到问题。我有两个视图控制器。第一个只在横向左/右运行,另一个只在纵向运行。如果我在视图之间切换,方向不会自动改变。只有当我转动设备时,方向才会改变。之后,方向是固定的。当我在控制器之间切换时,是否可以自动改变方向?
例如,当我在横向视图控制器中按下 BackButton 并切换到纵向视图控制器时,方向会自动从横向切换到纵向?
对不起,我的英语不好,这不是我的母语。
谢谢, 蒂姆
【问题讨论】:
【参考方案1】:在第二个视图中尝试以下代码。
- (void)viewWillAppear:(BOOL)animated
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
在第一视图中尝试以下横向代码。
- (void)viewWillAppear:(BOOL)animated
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscape];
【讨论】:
我相信未记录的setOrientation
调用仅适用于模拟器。在真实设备上,您无法真正以编程方式设置方向。用户必须物理旋转设备。
我收到一个错误:“'UIDevice' 没有可见的@interface 声明选择器'setOrientation'” 谢谢,蒂姆【参考方案2】:
if(UIDeviceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation))
self.view.frame = CGRectMake(0,0,1024,768);
else
self.view.frame = CGRectMake(0,0,768,1024);
----在要更改的地方使用此代码---
【讨论】:
以上是关于在视图控制器之间切换时自动旋转的主要内容,如果未能解决你的问题,请参考以下文章