objective-c - 不旋转标签栏 View Controller 中的仅一个 View

标签 objective-c ios xcode

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

所以我有一个标签栏 View Controller ,并且有 2 个应该自动旋转的 View 和一个不应该自动旋转的 View 。我的理解是,shouldAutorotateToInterfaceOrientation 需要始终返回 YES;为了让任何 View Controller 自动旋转。因此,如果是这种情况,我怎样才能只让一个不轮换但保持订单轮换呢?

非常感谢!

附言我从此处找到的另一篇文章中尝试了此操作: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];
} 

最佳答案

您的目标行为与 UITabBarController 的旋转规则冲突。您自己提到过:

shouldAutorotateToInterfaceOrientation needs to always return YES in order for any view controllers to autorotate.

但是您想要的是 View Controller 之一返回NO,这违反了该规则。因此,要回答您的问题,您必须实现自己的自定义 View Controller 容器(或自定义 View )。

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

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

关于objective-c - 不旋转标签栏 View Controller 中的仅一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157541/

相关文章:

objective-c - addTarget :action:forControlEvents - UISwitch in TableView - sender ok, 事件始终为 0x0

ios - View 的宽度发生了奇怪的变化

objective-c - 指针在 C 和 Objective C 中的使用方式不同吗?

ios - FaSTLane 与企业环境中的多个现有应用程序匹配

IOS自定义从左向右滑动UIViewcontroller并导致segue错误

ios - 如何控制 UIActivityIndi​​catorView 的旋转?

ios - 加载 View Controller ,但直到第二次点击 tableview 才出现

iOS,应用内购买 - "Waiting for Review"

xcode - Xcode 4 中的界面生成器

php - 空间 NSURL 连接