控制器,视图,授权 - 如何正确设计

时间:2012-09-24 16:18:23

标签: objective-c model-view-controller

搜索其他问题,但仍然没有答案...... 需要一些建议。 我将我的代码从另一个平台移植到iOS。 我在C ++中有一个MVC骨干: CData为模型。 控制器CController。

  • CController创建CData实例
  • CController创建一个CView实例
  • CController继承自CNotifications摘要
  • CController将“this”传递给CView的构造函数
  • CView期望构造函数中的CNotifications *,这就是CView如何在没有实际知道CController本身的情况下调用控制器的一些重要事件

在Windows上,CView只需访问GDI即可绘制所需内容。

现在我将所有这些移植到iOS。 CData和CController完全独立于平台,所以一切都清楚。我打算在iOS上重新实现CView。这就是问题所在。

一开始我想要我的ios的ViewController(xib的所有者)只是从CView继承并实现所有CController需求。但后来我注意到Obj-C中没有多重继承,ViewController已经从UIViewController继承。

所以我觉得我需要以一种指向ViewController(xib的所有者)的方式实现CView。

问题是:如何很好地向CView传递一个指向ViewController的指针?

我计划用ApplicationDelegate创建CController,它将创建CData和CView。我不希望CController接收到一个指向ViewController的指针,然后将这个指针进一步传递给CView - 我希望CController保持可移植......

有各种各样的事情发生,但我希望能在这里获得广泛接受的方法

提前致谢

1 个答案:

答案 0 :(得分:0)

好的,我通过简单地让ViewController创建了Controller和我的bussines逻辑视图并将View传递给Controller来解决这个问题