我经常有一个带有编辑按钮的UITableViewController
,当表中没有行时我想禁用它。为了使其保持同步,我每次发生可能更新其dataSource
的事件时启用/禁用按钮 - 添加第一行,删除最后一行,viewDidLoad
等等。每当我添加一些新内容时可以影响表内容的功能,我必须记住合并这个逻辑。
我是否可以使用UITableView
的一些代表来简化此操作?一种方法可以知道何时修改表格(或dataSource
),我可以检查dataSource
中的项目数并相应地启用/禁用。
或者,任何其他方法都会受到欢迎。
答案 0 :(得分:3)
您 数据源。因此,如果您想知道,只要数据源发生变化,您就会知道。换句话说,你遇到这个问题的原因是你将模型(在模型 - 视图 - 控制器架构中)视为外星人。相反,将模型视为您自己的模型。负责你的模特。例如,模型是数组吗?然后将它包装在您自己的类中,必须为其指定更改数组的所有命令。这样,只要被告知要更改数组,它就会发出通知。
在某些情况下,也可以使用键值观察来在事情发生变化时得到通知,并且你可以查看它,但是对于数组和词典这样的原语,这可能会比它的价值更麻烦。同样,您可能更乐意将模型存储包装在您自己的类中,通过KVO可以自行管理您的模型存储。