iphone - 如何防止标签栏 Controller 中的 View Controller 旋转?

标签 iphone rotation tabbarcontroller

我有一个管理 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/

相关文章:

iphone - IOS从tabbarcontroller中的navigationcontroller推送viewcontroller但不显示

iphone - 在iPhone上播放声音不起作用

iphone - 核心数据 : setPrimitiveValue and saving changes

ios - 在模态转场(ViewController)中显示 UINavigationController?

model - 如何在 libgdx 中先缩放然后旋转模型实例

iphone - 如何从 Tab Bar Controller 上方显示 UIActionSheet View ?

iOS7标签栏变化

iphone - 在 UILabel 中显示表情符号?

iphone - 已创建相应类后无法连接 .xib 文件

安卓大图旋转