-1

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

我究竟如何保存BOOL状态UISwitch

我需要提供什么样的模型?

传递UISwitch单元格 状态FilterTableView以显示/隐藏部分的正确方法是什么ListTableView

提前感谢您的帮助!

4

2 回答 2

0

您需要将对数据源中的项目的引用传递给单元格,以便它可以直接更改它(例如,传入一个Filter对象),或者您需要使FilterTableView每个单元格的委托并让单元格通知其当开关值改变时委托。

如果单元格是通用的,并且您还在其他地方将其用于其他用途,请使用委托模式。Filter但如果它是这个表视图独有的,那么将对象传递给它可能更容易。这样它也可以自己设置标签和切换状态,而不是要求数据源设置它的值。

于 2016-02-16T17:17:17.920 回答
0

如果您使用的是 stroyboard,您可以创建一个展开 segue(从 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)
    }
}

更多详细信息请参见:View Controller Programming Guide for iOS / Creating an Unwind Segue

于 2016-02-16T19:21:57.817 回答