UISwitch没有打电话给行动

时间:2012-07-18 07:45:57

标签: objective-c selector uiswitch

我有一个UITableView,其中包含可变数量的单元格,每个单元格都有一个UISwitch。以下是所有开关的行:

[cell.currentSwitch addTarget:self action:@selector(changeCurrentEvent:) forControlEvents:UIControlEventValueChanged];

我设置了当你翻转一个开关时,它会关闭所有其他开关(在-changeCurrentEvent:内)。我注意到的是,当我手动翻转开关时,-changeCurrentEvent:被正确调用,但由于它关闭了所有其他的,因此改变了它们的价值,他们每个人都不应该调用-changeCurrentEvent: ?无论如何,这就是我希望他们做的。

1 个答案:

答案 0 :(得分:0)

仅当用户操作更改控件时才会发送控制事件(例如,在切换的情况下点击)。如果您要更改代码中的值,则不会发送它们。

这很好地避免了无限循环情况,其中控件更新以响应其他控件更改,这会导致其他控件更改...

-changeCurrentEvent:的实施应对模型进行所有必要的更改,以响应单个开关的更改。