在我的iOS应用程序中,我的一个视图上有一个视图控制器和一个UITableView子类。目前,UITableView管理它自己的数据(创建连接,并作为处理回调的委托)。
我想知道这是否是最佳做法?在视图控制器上运行它然后将数据传递到表中是否更好?这根本不重要吗?
除了回答我的问题外,请解释原因。
谢谢!
答案 0 :(得分:2)
在delegate
中实施dataSource
和ViewController
方法会更为标准。
除了自定义绘图之外,对UI*View
类进行子类化是很不寻常的。 UITableViewCell
对此规则有点例外。
如果您发现ViewController
变得有点大,您可能会考虑在单独的类中实现委托和dataSource。
答案 1 :(得分:0)
除了mcfedr的答案之外,视图是与用户交互的东西,通常很好地分离概念(除非不可避免)。另请注意,历史版本的ios(iirc)视图控制器可以根据需要加载/卸载视图,因此其中的任何应用程序逻辑都可能不复存在。
答案 2 :(得分:0)
在这种情况下,我通常只有一个类...包含以下视图层次结构的UIViewController实例:
使用这种方法,我的UIViewController将:
当主机UIViewController是UIViewContoller的委托和数据源时,所有代码都可以存在于一个类中。这样可以使项目代码更紧密,但会紧紧结合您的逻辑。
另一种方法是继承UITableView并实现UITableViewDelegate和UITableViewDatasource。如果出现以下情况,这将是一种理想的方法:
以下是我使用的思考过程:
最佳实践取决于所涉及的程序员数量,UITableView的可重复性,已建立的编码模式。这通常是一个偏好问题,我希望我的答案能说明为什么你会采取任何一种方式,