UITableView更改时的通知

时间:2012-09-16 02:26:37

标签: ios cocoa-touch uitableview

我经常有一个带有编辑按钮的UITableViewController,当表中没有行时我想禁用它。为了使其保持同步,我每次发生可能更新其dataSource的事件时启用/禁用按钮 - 添加第一行,删除最后一行,viewDidLoad等等。每当我添加一些新内容时可以影响表内容的功能,我必须记住合并这个逻辑。

我是否可以使用UITableView的一些代表来简化此操作?一种方法可以知道何时修改表格(或dataSource),我可以检查dataSource中的项目数并相应地启用/禁用。

或者,任何其他方法都会受到欢迎。

1 个答案:

答案 0 :(得分:3)

数据源。因此,如果您想知道,只要数据源发生变化,您就会知道。换句话说,你遇到这个问题的原因是你将模型(在模型 - 视图 - 控制器架构中)视为外星人。相反,将模型视为您自己的模型。负责你的模特。例如,模型是数组吗?然后将它包装在您自己的类中,必须为其指定更改数组的所有命令。这样,只要被告知要更改数组,它就会发出通知。

在某些情况下,也可以使用键值观察来在事情发生变化时得到通知,并且你可以查看它,但是对于数组和词典这样的原语,这可能会比它的价值更麻烦。同样,您可能更乐意将模型存储包装在您自己的类中,通过KVO可以自行管理您的模型存储。