我想我今天已经阅读了这个问题的大概50个版本。我得到的最接近的答案是
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow: (UIWindow *)window{
进入我的app委托和
-(BOOL)shouldAutorotate
- (NSUInteger) supportedInterfaceOrientations
进入视图控制器我想限制为纵向模式。在这个设置中,我发现我的视图控制器中的方法永远不会被调用。每当我做一个基于tabue的标签栏时,我的appdelegate中的方法就会被调用,但是当我在导航控制器中执行push segue时则不会。
我已经看到了几个希望我将导航控制器子类化的答案,但必须有更直接的方式。
我有一个包含三个标签的应用。标签1只是一个主屏幕。标签2有一个导航控制器通过两个tableviews控制器,最后一个表视图segue到一个简单的视图控制器。选项卡3转到一个tableviewcontroller,然后将一个push segue拖动到选项卡2终止的同一个简单视图控制器中。
我希望终止视图控制器始终处于纵向状态。其他场景应该能够根据需要在纵向和横向之间切换。
我在xcode5 IOS7 感谢
答案 0 :(得分:1)
问题的真正答案是,好的应用程序分为三类:仅限肖像应用程序,仅限横向应用程序以及在所有视图控制器中同时支持两种方向的应用程序。
用户体验设计目标:用户控制应用,应用不控制用户。
具有一些仅限纵向视图控制器的应用程序,以及一些支持旋转的视图控制器,是一个试图控制用户的应用程序。具体来说,当用户导航到仅限纵向视图时,应用程序会强制用户物理旋转设备以响应应用程序的异想天开。
简而言之,假设您有一个仅支持肖像的视图控制器,您应该设计一个仅限肖像的应用程序。如果你不想要一个只限肖像的应用程序,那么你需要弄清楚如何在最后一个视图控制器上支持旋转。