0

我现在已经被这个问题困住了超过 2 周!在我的项目中,我有 1 个 ViewController(slide) 我想同时启用横向和纵向。其余的所有控制器/视图(幻灯片)我只想启用纵向模式。

棘手的部分是,我所指的“ViewController”同时连接到 NavigationControllers 和 TabBarControllers。请参阅下面的方案,其中我要启用横向/纵向的 ViewController 被命名为:ReferredViewController

TabBarController ----> NavigationController ----> FristViewController --(push event)--> ReferredViewController

到目前为止,我已经尝试为 NavigationControllers 和 TabBarControllers创建一个CATEGORY 。但是由于我的 NavigationControllers 和 TabBarControllers 放置在项目的最开始,这将为整个项目设置规则。我的 ReferredViewController 放置在项目“故事板”的末尾或中间。我也尝试通过代码为单个 ReferredViewController 设置规则,但没有成功。

到目前为止,我最好的方法是将 FirstViewController 和ReferredViewController之间的事件从“推送”更改为“模态”。然后,ReferredViewController 可以同时旋转纵向/横向,并且项目的其余部分被锁定为纵向。但是,正如您可能知道的那样,所有导航都将丢失,用户将被卡在单张幻灯片上。

我还想知道一件事,是否可以在 ModalViewController 中显示 NavigationControllers?我没有尝试/测试过这种情况所有可能的方式,但我们将不胜感激。

如果您对上述方案有任何聪明的提示或动作,请我需要我能得到的所有帮助,我对无法解决这个问题感到非常沮丧!/问候

4

1 回答 1

1

问题是您正在做苹果设计不支持的事情。标签栏旋转的问题是众所周知的,您可以在 stackoverflow 找到许多关于该主题的帖子。
在苹果设计策略中,最顶层的控制器必须允许两种旋转,只有子控制器可以将其减少到一个方向。
如果你想要它的另一种方式,最支持的肖像,和孩子们两者,你是你自己的。
苹果不支持的这些东西非常耗时。
我处于这种情况,没有调用 didRotate..() 。我最终通过使用 CGtransform 自动旋转视图来解决它...,这是我在stackoverflow 中获得的信息。

为了解决这个问题,使用两个视图控制器,一个允许两个方向,一个只允许一个方向。为避免重复代码,您可以从继承的类中调用公共代码。

于 2012-12-18T00:40:20.430 回答