UITableViewCell
のアクセサリビューでカスタムボタンを作成しました。このボタンは、リストビューでカスタマイズされたチェックボックスとして機能します。列挙型を使用して配列内のアイテムを移動する
プログラムで「チェック済み」アイテムをUITableView
の2番目のセクションに移動したいのですが、これを実行するのが難しいです。
私はMVCを以下だし、私がチェックされた項目をソートするために、以下の方法では、BOOL、didArrive
を使用しています:
- (void)shuffleGuests
{
RCGuestManager *movedGuest = [[RCGuestManager alloc] init];
for (id guest in allGuestsPending) {
if ([guest didArrive]) {
[allGuestsArrived addObject:guest];
movedGuest = guest;
}
}
[allGuestsPending removeObjectIdenticalTo:movedGuest];
}
注2つのアレイ。チェックされていない項目はallGuestsPending配列に移動し、チェックされたゲストはallGuestsArrived配列に移動する必要があります。
このメソッドは、行がタップされたときに呼び出されます。アイテムがチェックされ、テーブルビューの1つのセクションから2つのセクションに移動します(配列に一致します)。
列挙中にオブジェクトを削除することはできません。そのため、移動したオブジェクトを変数に入れて、それを元の配列から削除して新しい配列に追加しようとしています。
上記の方法では、配列の最後の項目が常に新しいセクションに移動します。
このようなことをするより良い方法はありますか?
をあなただけ異なる配列に到着したゲストのすべてを移動したいですか?この関数は、ゲストが到着したかどうかに関係なく、保留中の配列の最後のオブジェクトを毎回消去します。また、到着したゲストは保留中のアレイに残ります。私はあなたの質問のどこかで間違いをしたと思います... – borrrden
RCGuestManagerのゲストインスタンスはすべてですか?もしそうなら、なぜ配列にない新しいゲストで 'movedGuest'を初期化していますか?そうでない場合、RCGuestManagerで 'movedGuest'をなぜ初期化していますか? –