【问题标题】:What is the right design pattern for switching between UIViewControllers?在 UIViewController 之间切换的正确设计模式是什么?
【发布时间】:2012-10-20 08:40:46
【问题描述】:

我有一个应用程序,它有两个主要控制器:一个 GJClientSelectionController,它只是一个普通的 UIViewController,其中包含一个包含滚动视图的视图,以及一个 CGClientDetailController,它是一个自定义 UIViewController,它管理一个自定义选项卡栏和一个控制器。 .当用户在应用程序的每个部分之间移动时,我会在控制器之间切换。

问题是,我不确定正确的设计模式是什么。在 iOS6 之前,我只是将每个设置为窗口的 rootViewController 属性的值。它工作得很好,但是如果设备旋转然后我切换控制器,新可见的控制器将不会收到旋转通知,并且在用户旋转设备之前会被绘制错误。我还在尝试使用我称为 masterController 的常规 UIViewController,并将其设置为 rootViewController,然后将其他两个控制器添加为 childViewControllers。唯一的问题是,如果我将 childViewController 的视图隐藏起来,它仍然会错过旋转通知。

在 UIViewController 之间移动的正确设计模式是什么?当我切换到控制器及其视图时,如何确保它们具有正确的方向?

【问题讨论】:

    标签: ios ipad uiview uiviewcontroller ios6


    【解决方案1】:

    【讨论】:

    • 抱歉,我想我找到了另一篇可以帮助您解决此问题的帖子。请参阅上面的链接。
    • 感谢您的帮助,但也不是这样。基本上,视图应该处理任何方向。我遇到的断开连接是,当我将新的 UIViewController 添加到 [window rootViewController] 层次结构时,新控制器不知道现有的旋转,并且默认情况下会采用纵向。如果您在添加设备后旋转设备,它将正确地采用新的方向,但无论出于何种原因,iOS 似乎都不会在最初添加设备时通知控制器设备的当前方向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    相关资源
    最近更新 更多