iOS组件可重用性:视图和视图控制器

时间:2013-03-17 21:08:08

标签: ios objective-c cocoa-touch

非常基本的问题,我似乎无法找到答案。

所以这是交易:我有一个UI,我想在几个接口中重用。特别是,它应作为子视图包含在作为导航堆栈一部分的父视图中,但也可用作独立模式视图。有问题的子视图只是一个自定义的UITableView,其数据绑定方法由子控制器实现。

子视图应该绑定到一个特定的模型对象,它从中获取所有数据。换句话说,它的控制器基于该目标模型对象为UITableViewDataSource实现必要的数据绑定方法。

我很明显需要创建一个控制器来表示这个可嵌入的子视图,因为这些数据绑定方法的实现在所有实例中都是相同的,但是看起来在iOS 5之前(我目前需要支持iOS) 4+)强烈建议不要在其他视图控制器中嵌入视图控制器。

这完全违反了Apple 所谓在Cocoa中使用的MVC模式(我仍然不相信它们实现的是MVC)。如果我不允许嵌入子视图控制器,我应该如何在不同的父接口中重用我的子视图控制器的数据绑定/模型逻辑?

1 个答案:

答案 0 :(得分:1)

您可以创建控制器类(只是常规NSObject子类)而不是使用视图控制器来提供数据,并为需要嵌入子视图的每个视图控制器实例化

编辑:所以你会做[[MyController alloc] initWithTableView:tableView]之类的事情。