在视图控制器之间切换时自动旋转

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);

----在要更改的地方使用此代码---

【讨论】:

以上是关于在视图控制器之间切换时自动旋转的主要内容,如果未能解决你的问题,请参考以下文章

在主从视图和其他视图控制器之间切换?

设备旋转时切换视图控制器

旋转设备时,动画 uiview 切换回其原始状态

旋转设备时切换到另一个视图控制器

在两个视图之间切换以及从纵向切换到横向时出现 iPad 方向问题,反之亦然

旋转时切换视图无法正常工作