私のアプリにはUITableView
. 選択したセルにチェックマークを付け、再度選択されたらチェックマークを外します。「次へ」ボタンである UIBarButtonItem があり、デフォルトで無効になっています。
私の質問は、少なくとも1つUITableViewCell
にチェックマークが付いている場合、次のボタンを有効にする必要があるということです. 少なくとも 1 つのセルにチェックマークが付いているかどうかに関係なく、すべてのセルを制御するにはどうすればよいですか。
私のアプリにはUITableView
. 選択したセルにチェックマークを付け、再度選択されたらチェックマークを外します。「次へ」ボタンである UIBarButtonItem があり、デフォルトで無効になっています。
私の質問は、少なくとも1つUITableViewCell
にチェックマークが付いている場合、次のボタンを有効にする必要があるということです. 少なくとも 1 つのセルにチェックマークが付いているかどうかに関係なく、すべてのセルを制御するにはどうすればよいですか。
セルが選択されている場合は true に設定され、選択されていない場合は false に設定される bool 変数を「そのまま」使用することはできませんか? 次に、テーブルビューをリロードするたびにそれを確認し、それに応じて次のボタンを無効/有効にしますか?
通常、最良の方法は、オブジェクトごとにブール値を設定することだと思います。
テーブルビューに渡すオブジェクト配列があるといいのですが。
したがって、didSelectメソッドでは、配列内に少なくとも1つのオブジェクトが設定されているかどうかをFORループでチェックできます。
didSelectRowAtindexPathでは、chemarkがチェックされているかどうかを確認し、チェックされている場合はチェックを外し、チェックされていない場合はチェックを行います。
実際のコードではなく、擬似コード
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath
{
if(checkmark checked )
{
un checked it
nextButton.enabled=false;
}
else
{
checked it;
nextButton.enabled=false;
}
}
tableView で multipleSelection を有効にします。ビューでDidLoad
tableView.allowsMultipleSelection = YES;
行を選択または選択解除するたびに、[tableView indexPathsForSelectedRows]
配列の数を確認します。カウントが 0 より大きい場合は、ボタンを有効にします。それ以外の場合は無効にします。
[tableView indexPathsForSelectedRows] は NSArray を返します。
必要以上のパラメータを取る必要はありません。