【问题标题】:portrait mode on one view controller一个视图控制器上的纵向模式
【发布时间】:2014-07-23 04:29:54
【问题描述】:

我想我今天已经回答了这个问题的 50 个版本。我得到的最接近的答案是

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow: (UIWindow *)window{

进入我的应用委托和

-(BOOL)shouldAutorotate
- (NSUInteger) supportedInterfaceOrientations

进入我想限制为纵向模式的视图控制器。在这个设置中,我发现我的视图控制器中的方法永远不会被调用。每当我执行基于标签栏的 segue 时,我的 appdelegate 中的方法都会被调用,但当我在导航控制器中执行 push segue 时则不会。

我已经看到了一些希望我将导航控制器子类化的答案,但必须有更直接的方法。

我有一个包含三个标签的应用程序。 Tab 1 只是一个主屏幕。 Tab 2 有一个导航控制器通过两个 tableviewscontrollers 馈送,最后一个 table view segue 进入一个简单的视图控制器。 Tab 3 转到一个 tableviewcontroller,然后执行 push segue 到 tab 2 终止的同一个简单视图控制器。

我希望终止视图控制器始终处于纵向。其他场景应该可以根据需要在纵向和横向之间切换。

我在 xcode5 IOS7.
谢谢

【问题讨论】:

    标签: iphone objective-c orientation


    【解决方案1】:

    这个问题的真正答案是,好的应用属于以下三类之一:仅纵向应用、仅横向应用以及在所有视图控制器中都支持两种方向的应用。

    UX 设计目标:用户控制应用,应用控制用户。

    具有一些仅纵向视图控制器和一些支持旋转的视图控制器的应用是试图控制用户的应用。具体来说,当用户导航到仅纵向视图时,应用程序会强制用户物理旋转设备以响应应用程序的突发奇想。

    简而言之,假设你有一个只支持纵向的视图控制器,你应该设计一个只支持纵向的应用程序。如果您不想要仅纵向的应用程序,那么您需要弄清楚如何在最后一个视图控制器上支持旋转。

    【讨论】:

    • 你是对的,这很容易,并不是处理它的最佳方式。但是您必须承认,关于用户控制应用程序而不是应用程序控制用户的论点,考虑到我们正在谈论的是苹果设备,这确实具有讽刺意味。哈哈
    猜你喜欢
    • 2013-12-20
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    相关资源
    最近更新 更多