我有一个包含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);

}

10-06 13:23