0
現在、アプローチvadianを使用して選択した選択テーブルにチェックマークを付けることができます。私はまた、データクラスにBoolean("selected")
を追加しました。私が得られないことは、UserDefaultsを使って各行に対して選択された論理値を保存する方法、またはテーブルの行のセルにこれをロードする方法よりもです。 didload
セクションに触れる必要がありますか?以前に選択された行(承認されたユーザー)のテーブルビューのチェックマークをロード
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as? TableCell else {
return UITableViewCell()
}
let product = products[indexPath.row]
cell.accessoryType = product.selected ? .checkmark : .none
return cell }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as? TableCell else {
return UITableViewCell()
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
var selected = products[indexPath.row].selected
products[indexPath.row].selected = !selected
tableView.reloadRows(at: [indexPath], with: .none)
if selected != true {print("selected", indexPath.row, selected)}
else {print("selected", indexPath.row, selected)}
selected = UserDefaults.standard.bool(forKey: "sound")
}
感謝をチェックマークを設定します。 viewdidloadセクション以上に "var approved:Bool"を追加しますか?選択が変更されたときにモデルのプロパティを更新するにはどうすればよいですか?私は何とかそれぞれのブールを設定するためにdidselectrowを使用すると思いますか?その行をリロードする方法を理解していない。それは自動的に行いますか? –
いいえ、データモデル(データソース配列内の項目)にプロパティを追加する必要があります。各項目には独自の「承認済み」値があります。 'tableView.reloadRows ... 'で一行をリロードして、' didSelect'で明示的に行う必要があります(そして 'didDeselect'でも)。 – vadian
第1弾と第2弾のやり方を教えてくれますか?私は、あなたが私に示すコードを提供して以来、あなたが3日にやっていることを得ると思います。 :) –