2011-08-09 15 views
0

私のビューの1つでカスタムtableviewcellを使用しています。私はこのセルにUISwitchを追加して、複数の行を一度に削除できるようにしました。カスタムUITableViewCellのUISwitchの状態を取得します。

通常、ユーザーが行を選択して削除ボタンをタップすると、確認のためにUIAlertポップアップが表示され、その後アラートのclickedButtonAtIndexメソッドが結果を処理します。その方法で私はindexpath([self.myTableView indexPathForSelectedRow])を取得し、それに応じて削除する(またはしない)。

基本的には、indexPathを使用してdeleteステートメントにする代わりに、self.myTableView.myCell.mySwitch.onがTRUEであるかどうかを確認する必要があります。誰もがこれを行うための正しい方向に私を指すことができますか?私は、テーブルビュー内のすべての行を繰り返す必要がありますし、状態が存在する行ごとに削除する必要があります。

ありがとうございました。

答えて

0

セルをネストループ(またはセクションが1つのみの場合は1つのループ)とcellForRowAtIndexPath:を使用して反復処理する必要があります。
セルのswitch.on = TRUEが表示された場合は、indexPathForCell:を呼び出してindexPathを配列に保存します。
セルを反復処理した後、以前に作成された配列でdeleteRowsAtIndexPaths:withRowAnimation:を呼び出します。

+0

これは私がやっていたことです。しかし、cellForRowAtIndexPath:はreloadDataを使わない限り、一度だけ呼び出されます。デフォルトではスイッチの状態はすべてオフになっており、ユーザーは表がロードされた後に状態を変更します。 – MRB

関連する問題