【发布时间】:2012-08-28 10:00:47
【问题描述】:
我在编程时遇到问题。我有两个视图控制器。第一个只在横向左/右运行,另一个只在纵向运行。如果我在视图之间切换,方向不会自动改变。只有当我转动设备时,方向才会改变。之后,方向是固定的。当我在控制器之间切换时,是否可以自动改变方向?
例如,当我在横向视图控制器中按下 BackButton 并切换到纵向视图控制器时,方向会自动从横向切换到纵向?
对不起,我的英语不好,这不是我的母语。
谢谢, 蒂姆
【问题讨论】:
我在编程时遇到问题。我有两个视图控制器。第一个只在横向左/右运行,另一个只在纵向运行。如果我在视图之间切换,方向不会自动改变。只有当我转动设备时,方向才会改变。之后,方向是固定的。当我在控制器之间切换时,是否可以自动改变方向?
例如,当我在横向视图控制器中按下 BackButton 并切换到纵向视图控制器时,方向会自动从横向切换到纵向?
对不起,我的英语不好,这不是我的母语。
谢谢, 蒂姆
【问题讨论】:
在第二个视图中尝试以下代码。
- (void)viewWillAppear:(BOOL)animated {
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
}
在第一视图中尝试以下横向代码。
- (void)viewWillAppear:(BOOL)animated {
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscape];
}
【讨论】:
setOrientation 调用仅适用于模拟器。在真实设备上,您无法真正以编程方式设置方向。用户必须物理旋转设备。
if(UIDeviceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation))
{
self.view.frame = CGRectMake(0,0,1024,768);
}
else
{
self.view.frame = CGRectMake(0,0,768,1024);
}
----在要更改的地方使用此代码---
【讨论】: