我有一个管理 4 个选项卡的选项卡栏 Controller 。我对选项卡栏 Controller 进行了子类化,以便 shouldAutorotateToInterfaceOrientation: 方法仅允许选项卡之一中的特定 View Controller 旋转。一切工作几乎正常:其余选项卡中的 Controller 不会旋转。然而,当允许旋转的 View Controller 实际旋转时,如果用户点击其余选项卡之一,相应的 View Controller 也会出现旋转(即使其 shouldAutorotateToInterfaceOrientation: 方法显式返回 NO)。
如何防止这种情况发生?
为了清楚起见,这里有一个例子。点击选项卡 0、1 或 2 并尝试旋转设备,但没有任何反应(正确)。点击选项卡 4 并旋转设备,与选项卡 4 的 View Controller 关联的 View 将(正确)旋转。现在,仍然以旋转的横向方向握住 iPhone,然后点击另一个选项卡(0、1 或 2)会显示旋转 View (这是不正确的,也是我试图避免的)。
最佳答案
这是一个经常报告的“错误” - 但是一个好的解决方法是强制触发 shouldAutorotateToInterfaceOrientation:
选择器,如下所示:
- (void)viewDidAppear:(BOOL)animated {
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
UIView *view = [window.subviews objectAtIndex:0];
[view removeFromSuperview];
[window addSubview:view];
}
关于iphone - 如何防止标签栏 Controller 中的 View Controller 旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1606066/