我有以下ViewControllers:
InformationViewController和cardViewController。
如何确保informationViewController处于纵向模式且无法旋转。
然后cardViewController应该处于横向模式并且无法旋转。
我如何在每个viewController中实现它。我现在已经激活了protrait,在一般情况下左右两侧的景观
答案 0 :(得分:0)
在informationViewController中:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
在cardViewController中:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscape);
}
答案 1 :(得分:0)
看看我对这个问题的回答: Force controllers to Change their orientation in Either Portrait or Landscape
(但不要使用弃用的方法。有更新的方法可用。)
很容易将视图控制器限制在某些方向。但请参阅另一个答案,了解如何强制设备实际旋转。 没有这个技巧:如果在设备处于横向状态时,仅纵向视图控制器变为可见,则无论您如何限制其支持的方向,它都将以横向显示。
答案 2 :(得分:0)
在信息视图控制器
中- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
在卡片视图控制器中
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
注意:请确保在项目常规设置中勾选设备方向的纵向和横向模式(部署信息)