0
静的テーブルビューに少し問題があります。私は私のグリッドのオプションとして表示されるPopOverを持っています。私は以前、コントローラにlastSelected
(最後indexPath)をスローするようにdelegate
を使用しようとしているSwift:静的テーブルビューで選択したindexPathを保存して表示
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
var currSelected: IndexPath?
let section = indexPath.section
let numberOfRows = tableView.numberOfRows(inSection: section)
for row in 0..<numberOfRows {
if let cell = tableView.cellForRow(at: NSIndexPath(row: row, section: section) as IndexPath) {
cell.accessoryType = row == indexPath.row ? .checkmark : .none
tableView.deselectRow(at: indexPath, animated: false)
currSelected = indexPath
if section == 2 {
tableView.deselectRow(at: indexPath, animated: false)
cell.accessoryType = .none
}
else {
delegate?.option(lastSelected: currSelected!)
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "reload"), object: nil)
}
}
}
}
:私は私の静的なテーブルビューの状態(indexPath)を保存したいが、それは仕事をdoesntのようで、以下の私のスニペットコードですそれをPop Over Controllerに送って、それを手に入れました。しかし、私はこのlastSelectedを使ってチェックマークを表示することを知らない。そして、prepare for cell at
関数は、再利用されたセルの識別子を必要としますが、私はそれを使用しません。
私はチェックマークを表示するためにthisと読みましたが、状態を保存していません。私もthisを読んだことがありますが、それも同じです。どんな提案/答えも私にとって助けになるでしょう。ありがとうございました
それはチェックマークを1つだけ保存します。私は2セクションを持っていないので、私はlastSelectedが2つのチェックマークを持っている場合2つのチェックマークが必要です –
次に、IndexPath変数の代わりにIndexPathsの配列を格納し、 'willDisplayCell'でその配列をループする必要がある – Malik
分離されたindexPath 。有用なsugestとして受け入れる、私は私の最終的なコードを更新します。前もって感謝します –