0

我开始在 Objective-C 中学习软件设计,并且正在实现 Instagram 之类的应用程序。用户可以阅读和发布提要。但是,我遇到了问题。视图不能相互通信,并且视图转换方法在不同的视图中实现。我知道有一些设计模式可以帮助我集中转换流量等。我需要满足一些限制。


  1. UITabbarController 包含几个 UINavigationController 和 UIViewController (4个标签)

  1. 我想将视图转换集中在一个类层次结构中,例如类层次结构示例:
                           [ViewTransition] 
          
                                      ^
                                      |
                   +------------------+-----------------+ 

                   |                  |                 | 
    

             [ToAView]            [ToBView]           [ToCView]

(ViewTransition:包含抽象方法“requestViewTransition”的协议/抽象类。)

(ToAView:一个类实现了抽象方法“requestViewTransition”,该方法执行从任何视图到“A”视图的视图转换。)


  1. 每个视图转换可能有不同的实现方法。

例如从“A”视图到“B”视图,我们需要使用:

[navigationController pushViewController:BViewController 动画:YES];

例如从“C”视图到“B”视图,我们需要使用:

[CViewController presentModalViewController:BViewController 动画:YES];


  1. 观察者模式需要一些视图控制器。例如,用户在“A”视图中输入数据,“A”视图的模型需要通知其观察者更新他们的视图。

4

1 回答 1

1

似乎您正试图让所有视图访问相同的数据,对吗?

最好的方法可能是使用单例。获取您需要的用户信息并将其存储在单例中的变量中,然后使用单例中的方法在您的视图中共享。

或者,根据您实际在做什么,您可以简单地设置自定义 init 方法并使用他们需要的数据初始化您的视图。

于 2012-11-19T17:03:29.050 回答