3

我有一个在 TTTableView 上切换 setEditing 的按钮。以前我一直在使用“常规” UITableView 和以下方法来实际删除数据,但我在 Three20 类中没有看到任何类似的东西,并且在按下删除按钮时不会调用我的方法排。

  • (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { //做工作}

我一定错过了什么,但我不知道在哪里。TTTableViewController 中的 setEditing 似乎没有连接到任何东西。有一个 didDeleteObject 方法,但我不知道这是否应该替代上述方法。任何投入将不胜感激。

4

1 回答 1

7

. TTTableViewController_ _ 与大多数具有表格视图控制器的 iPhone 教程也实现和协议不同,Three20 通过单独的类实现它们:您应该使用模型实例设置控制器的属性,并且控制器创建自己的委托(在方法中,您可以覆盖)。UITableViewControllerUITableViewDelegateUITableViewDataSourcedataSourcecreateDelegate

您要实现的方法tableView:commitEditingStyle:forRowAtIndexPath:UITableViewDataSource协议的一部分,因此您需要在模型类上实现它,而不是在控制器本身上实现。

TTTableViewController不直接对 做任何事情,setEditing:animated:只是从 继承基本实现UIViewController

model:didDeleteObject:您看到的方法是TTModelViewController作为TTModelDelegate协议的实现继承而来的。它在那里,以便对底层数据模型的更改可以通知视图层的更改。例如,如果您的应用程序正在从 Web 下载数据,则行可能会一直出现和消失,与用户界面发生的情况无关。如果您尝试通过 UI 进行编辑,则无需对此进行处理。

于 2009-10-06T02:59:37.907 回答