http://i.stack.imgur.com/WOR2b.png
我有一个带有设置的控制器和一个带有自定义单元格的表。用户将选择他想要显示的源,因此我需要有关开关的信息,以便将其保存在用户默认值中。我已经创建了一个方法
- (IBAction)sourceSwitcherValueChanged:(id)sender {
if ([sender isOn]) {
[[CSDMainManager sharedManager].userDefaults setBool:YES forKey:(???)]
}else{
[[CSDMainManager sharedManager].userDefaults setBool:NO forKey:(???)]
}
}
我不知道如何从单元格中提取数据,您更改了切换器的值,或只是知道它具有什么标题。 有什么想法吗?
答案 0 :(得分:0)
由于您有一个分布在多个组件(单元格)中的数据集,因此数据源对象实际包含这些数据是最合乎逻辑的。
这意味着数据源负责为表视图创建单元格,并根据它所篡改的数据设置单元格状态。如果单元状态随后发生变化(按下开关),则单元应报告回数据源。单元格上的自定义委托实现应该可以解决问题。
例如,如果您的视图控制器包含带有自定义单元格的表视图:
因为在你自己的情况下,为每个设置创建一个带有方法的委托似乎有点过分,我宁愿创建一个所有者然后创建一个委托。区别在于您传递对象本身,如cell.owner = self
中所有者是单元格的弱属性,并且与控制器的类型相同。现在,控制器可能具有公共属性或方法,用于公开数据或方法以修改数据。