我有一个按钮可以在TTTableView上切换setEditing。以前我一直在使用“常规”UITableView和以下方法来实际删除数据,但我在Three20类中看不到任何类似的东西,并且在按下删除按钮时不会调用我的方法行。
我一定错过了一些东西,但我无法弄明白。似乎TTTableViewController中的setEditing没有连接到任何东西。有一个didDeleteObject方法,但我不知道这是否应该替代上述方法。任何意见都将不胜感激。
答案 0 :(得分:7)
您使用TTTableViewController
的体验也会与您预期的略有不同,因为
UITableViewDelegate
和UITableViewDataSource
协议不同,Three20通过单独的类实现它们:您需要使用模型实例设置控制器的UITableViewController
属性,并且控制器创建自己的委托(在dataSource
方法中,您可以覆盖)。
您要实施的方法tableView:commitEditingStyle:forRowAtIndexPath:
是createDelegate
协议的一部分,因此您需要在模型类上实现该方法,并且不在控制器本身上。
UITableViewDataSource
不会直接对TTTableViewController
执行任何操作,只会从UIViewController
继承基本实现。
您看到的setEditing:animated:
方法继承自model:didDeleteObject:
,作为TTModelViewController
协议的实现。它就在那里,对底层数据模型的更改可以通知视图层更改。例如,如果您的应用程序正在从Web下载数据,则行可能会一直显示和消失,与用户界面的操作无关。如果你试图通过用户界面进行编辑,你不应该搞砸。