我有一个包含UICollectionView的UIViewController。在点击任何UICollectionViewCell时,我会显示一个模式视图控制器。
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PopViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"DetailsView"];
vc.view.backgroundColor = [UIColor clearColor];
vc.transitioningDelegate = self;
vc.modalPresentationStyle = UIModalPresentationCustom;
[self presentViewController:vc animated:YES completion:nil];
PopViewController正确显示。现在,当显示PopViewController时,我想限制设备方向。也就是说,如果PopViewController以纵向模式显示,那么即使我切换到横向模式(在模拟器中使用“向左旋转”或“向右旋转”),它也不应更改为横向,直到我关闭PopViewController为止。
我在PopViewController中使用了以下代码:
-(BOOL)shouldAutorotate {
return NO;
}
还有什么(或者相反)需要将弹出视图锁定到当前方向?
最佳答案
在模态控制器中,尝试添加此内容(iOS> 6)
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
要支持iOS 5或更低版本,您必须另外添加:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}