0

一个非常简单的问题,在我在这里和 Google 上搜索时并没有出现。UIView当所有其他视图都这样做时,您如何限制某个UIViewController视图不旋转?

containerView.autoresizingMask = UIViewAutoresizingNone;
containerView.autoresizesSubviews = NO;

上面的代码似乎不起作用。

我正在使用 iOS 6。

4

1 回答 1

1

iOS 6 有不同的处理旋转的方式。您必须在最顶层的视图控制器上使用 shouldAutorotate 方法。以下是苹果的报价

如果您想暂时禁用自动旋转,请避免操作方向蒙版来执行此操作。相反,覆盖最顶层视图控制器上的 shouldAutorotate 方法。在执行任何自转之前调用此方法。如果它返回 NO,则旋转被抑制。

你可以尝试类似的东西

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{

      NSUInteger orientations = UIInterfaceOrientationMaskAllButUpsideDown;
      if(self.window.rootViewController){
      // CHECK FOR A PARTICULAR VIEW CONTROLLER

         UIViewController *presentedViewController = [[(UINavigationController *)self.window.rootViewController viewControllers] lastObject];
         orientations = [presentedViewController supportedInterfaceOrientations];
      }
   return orientations;
}
于 2013-09-17T13:51:42.443 回答