Ios 保存UITableView中单元格的UISwitch状态,以将数据传递给源控制器

Ios 保存UITableView中单元格的UISwitch状态,以将数据传递给源控制器,ios,objective-c,uitableview,uiswitch,pass-data,Ios,Objective C,Uitableview,Uiswitch,Pass Data,我有一个ListTableView,其中的单元格分为几个部分。 另一个控制器提供的另一个FilterTableView(ListTableView的过滤器设置)。FilterTableView的每个单元格都有一个UISwitch,用于设置ListTableView指定部分的显示/隐藏状态 如何准确保存ui开关的BOOL状态 我需要提供什么样的型号 通过的单元格的ui开关状态的正确方式是什么 FilterTableView在ListTableView中显示/隐藏节 提前谢谢你的帮助 您需要将对数据

我有一个
ListTableView
,其中的单元格分为几个部分。 另一个控制器提供的另一个
FilterTableView
ListTableView
的过滤器设置)。
FilterTableView
的每个单元格都有一个
UISwitch
,用于设置
ListTableView
指定部分的显示/隐藏状态

如何准确保存
ui开关的
BOOL
状态

我需要提供什么样的型号

通过的单元格的
ui开关
状态的正确方式是什么
FilterTableView
ListTableView
中显示/隐藏节


提前谢谢你的帮助

您需要将对数据源中的项的引用传递给单元格,以便它可以直接更改它(例如,传入
过滤器
对象),或者需要将
过滤器表视图
作为每个单元格的委托,并让单元格在开关值更改时通知其委托


如果单元格是通用的,并且您也在其他地方使用它来做其他事情,请使用委托模式。但是,如果它是这个表视图所特有的,那么只需将
过滤器
对象传递给它可能会更容易。这样,它还可以自行设置标签和切换状态,而不需要数据源设置其值。

如果使用stroyboard,则可以创建一个展开序列(从FilterTableViewCtrl返回ListTableViewCtrl)。在这种情况下,您可以在ListTableViewCtrl中的“展开”操作方法中保存数据

- (IBAction)unwindToList:(UIStoryboardSegue*)unwindSegue
{
    UIViewController* sourceViewController = unwindSegue.sourceViewController;
    if ([sourceViewController isKindOfClass:[FilterTableViewCtrl class]])
    {
        FilterTableViewCtrl* filter = (FilterTableViewCtrl*)unwindSegue.sourceViewController;
        //read state of filter, and update list (self)
    }
}

查看iOS控制器编程指南/创建展开序列中的更多详细信息

您是否有任何尝试的代码?