0

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

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

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

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

这与 Apple据称在 Cocoa 中采用的 MVC 模式完全相反(我仍然不相信他们实现的是 MVC)。如果我不允许嵌入子视图控制器,我应该如何在不同的父界面中重用我的子视图控制器的数据绑定/模型逻辑?

4

1 回答 1

1

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

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

于 2013-03-17T21:10:57.223 回答