我有一个ListTableView
,其细胞分为几个部分。
另一个控制器提供的另一个FilterTableView
(ListTableView
的过滤器设置)。 FilterTableView
的每个单元格都有UISwitch
来设置ListTableView
指定部分的显示/隐藏状态。
我究竟如何保存BOOL
的{{1}}状态?
我需要提供什么样的模型?
传递UISwitch
个细胞状态的正确方法是什么?
UISwitch
显示/隐藏FilterTableView
中的部分?
提前感谢您的帮助!
答案 0 :(得分:0)
您需要将对数据源中的项的引用传递给单元格,以便它可以直接更改它(例如,传入Filter
对象),或者您需要创建{{1每个单元格的委托,并在切换值更改时让单元格通知其委托。
如果单元格是通用的,并且您也可以在其他地方使用它来执行其他操作,请使用委托模式。但是,如果它对于此表视图是唯一的,那么将FilterTableView
对象传递给它可能更容易。这样它也可以自己设置标签和开关状态,而不是要求数据源设置它的值。
答案 1 :(得分: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)
}
}
更多详细信息:适用于iOS的View Controller编程指南/创建放松搜索