【问题标题】:Not rotating only one view in a tab bar view controller在标签栏视图控制器中不只旋转一个视图
【发布时间】:2012-02-06 08:45:41
【问题描述】:

我知道有人问过这个问题,并研究了其他人发布的解决方案,但仍然对该主题感到很困惑,所以如果这真的是一个“菜鸟”问题,我深表歉意。

所以我有一个标签栏视图控制器,我有 2 个应该自动旋转的视图和一个永远不应该自动旋转的视图。我的理解是 shouldAutorotateToInterfaceOrientation 需要始终返回 YES;为了让任何视图控制器自动旋转。因此,如果是这种情况,我如何才能让一个不轮换但保持订单轮换?

非常感谢!

附:我从这里找到的另一篇文章中尝试了这个:How to prevent the view controllers in a tab bar controller from rotating? 但没有运气。该帖子的答案发布在下面

“这是一个常见的“错误” - 但是一个好的解决方法是强制 shouldAutorotateToInterfaceOrientation: 选择器按如下方式触发:”

   - (void)viewDidAppear:(BOOL)animated {
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
UIView *view = [window.subviews objectAtIndex:0];
[view removeFromSuperview];
[window addSubview:view];
} 

【问题讨论】:

  • 发布您的shouldAutorotateToInterfaceOrientation 方法代码。我们将首先检查它们 =)
  • 感谢您的快速回复。我只是将 shouldAutoRotateToInterfaceOrientation 设置为返回 YES;但在我也将其设置为返回之前 (interfaceOrientation == UIInterfaceOrientationPortrait);
  • 还有更多我应该参与的方法吗?谢谢!
  • 不。奇怪的行为。

标签: objective-c ios xcode


【解决方案1】:

您针对的行为与UITabBarControllers 的轮换规则冲突。你自己提到过:

shouldAutorotateToInterfaceOrientation 需要 始终返回 YES 以使任何视图控制器自动旋转。

但您想要的是让其中一个视图控制器返回 NO,这违反了该规则。因此,要回答您的问题,您必须实现自己的自定义视图控制器容器(或自定义视图)。

将此限制添加到UITabBarControllers 是有充分理由的。具有不同旋转规则的选项卡会让用户感到烦恼,因为每次更改选项卡时屏幕都会在它们上不断旋转。

现在,如果我是你,我将允许我的所有选项卡旋转,然后将非旋转视图呈现为模态视图。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多