0

セルの数が可変で、それぞれに。がUITableView付いていUISwitchます。すべてのスイッチの行は次のとおりです。

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

1つのスイッチを切り替えると、他のすべてのスイッチがオフになるように設定しました(の内部-changeCurrentEvent:)。私が気付いているの-changeCurrentEvent:は、手動でスイッチを切り替えると正しく呼び出されるということですが、他のすべてのスイッチがオフになり、値が変わるので、それぞれも呼び出すべきではありません-changeCurrentEvent:か?それはとにかく彼らにしてもらいたいことです。

4

1 に答える 1

0

コントロールイベントは、ユーザーの操作(スイッチの場合はタップなど)によってコントロールが変更された場合にのみ送信されます。コード内の値を変更している場合、それらは送信されません。

これにより、他のコントロールの変更に応じてコントロールが更新され、他のコントロールが変更される無限ループの状況をうまく回避できます...

の実装で-changeCurrentEvent:は、変更される単一のスイッチに応じて、モデルに必要なすべての変更を加える必要があります。

于 2012-07-18T08:04:56.617 に答える