在 UITableView 中保存单元格的 UISwitch 状态以将数据传递给源控制器
Saving state of UISwitch of cells in UITableView to pass data to source controller
我有一个 ListTableView
,单元格分为几个部分。
另一个控制器提供的另一个 FilterTableView
(过滤器设置为 ListTableView
)。 FilterTableView
的每个单元格都有一个UISwitch
来设置ListTableView
的指定部分的showing/hiding状态。
如何保存 UISwitch
的 BOOL
状态?
我需要提供什么样的型号?
传递 UISwitch
细胞状态的正确方法是什么
FilterTableView
至 show/hide 节 ListTableView
?
提前感谢您的帮助!
您需要将对数据源中项目的引用传递给单元格,以便它可以直接更改它(例如,传递 Filter
对象),或者您需要制作 FilterTableView
每个单元格的代表,并让单元格在开关值更改时通知其代表。
如果单元格是通用的,并且您还在其他地方使用它来做其他事情,请使用委托模式。但是,如果它是此 table 视图所独有的,则将 Filter
对象传递给它可能会更容易。这样它也可以自己设置标签和切换状态,而不是要求数据源设置它的值。
如果您使用的是 stroyboard,则可以创建一个 unwind 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)
}
}
更多详细信息,请参见:iOS 查看控制器编程指南/创建展开 Segue
我有一个 ListTableView
,单元格分为几个部分。
另一个控制器提供的另一个 FilterTableView
(过滤器设置为 ListTableView
)。 FilterTableView
的每个单元格都有一个UISwitch
来设置ListTableView
的指定部分的showing/hiding状态。
如何保存 UISwitch
的 BOOL
状态?
我需要提供什么样的型号?
传递 UISwitch
细胞状态的正确方法是什么
FilterTableView
至 show/hide 节 ListTableView
?
提前感谢您的帮助!
您需要将对数据源中项目的引用传递给单元格,以便它可以直接更改它(例如,传递 Filter
对象),或者您需要制作 FilterTableView
每个单元格的代表,并让单元格在开关值更改时通知其代表。
如果单元格是通用的,并且您还在其他地方使用它来做其他事情,请使用委托模式。但是,如果它是此 table 视图所独有的,则将 Filter
对象传递给它可能会更容易。这样它也可以自己设置标签和切换状态,而不是要求数据源设置它的值。
如果您使用的是 stroyboard,则可以创建一个 unwind 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)
}
}
更多详细信息,请参见:iOS 查看控制器编程指南/创建展开 Segue