用于捕获UIElements通知的自定义UITableViewCell的最佳实践

时间:2012-06-08 11:53:47

标签: ios uitableview uielement

我有一个表视图的视图。我已经将TableViewCells子类化,以表示我的模型的对象。这个Custom UITableViewCell有两个按钮来改变我的模型对象(它使实例变量+1 -1)。

所以我想到我应该如何构建所有这些,我的选择是:

- 我把一个指针放在自定义tableViewCell中,当我从其中一个按钮收到通知时,我偶然发现了单元格和模型的对象(我不喜欢这个解决方案,因为View正在改变我的模型,不好重用细胞这么糟糕)

在单元类中创建UICustomTableViewCellDelegate协议和id<UICustomTableViewCellDelegate>的实例。当我收到来自UIElement的消息时,我打电话给我的代表。委托将指向一般视图的UIViewController,它具有包含我的对象的所有实例的数组,并在此处更改模型。在将单元格视图更改为之前。我认为重用并不错,但我如何从ViewController数组中轻松识别和恢复我的对象?我认为该方法应该是:

-(void)customTableCellViewButtonPlusPressed:(CustomTableViewCell*) cell;

- 使用对象的引用为CustomTableViewCell创建一个viewController。他将从单元格的UIButtons接收消息并更改cellView和引用模型的对象

最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

第三种解决方案是其中最具代表性的

  1. 你将拥有一个模型,尽可能让它变得更重 要在模型本身上完成的功能和计算
  2. 作为UICustomTableViewCell的控制器,此类将读取模型并在视图上实现它,它还将从视图中获取事件并相应地更改模型
  3. 并且视图将是UICustomTableViewCell xib文件,其中包含单元格绘制和实现的信息
  4. 该模型将包含在UICustomTableViewCell中的“具有”关系中 UICustomViewCell类将能够将绘图函数发送到视图并从视图接收事件并相应地更改模型