Slide 46
Slide 46 text
υϝΠϯΛࡉԽ͢Δ
UITableView
final class ListViewController: UITableViewController {
let store: StoreOf = .init(initialState: ListFeature.State()) { ListFeature() }
var observations: [IndexPath: ObserveToken] = [:]
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
observations[indexPath]?.cancel()
observations[indexPath] = observe { [weak self] in
guard let self else { return }
cell.textLabel?.text = "\(store.rows[indexPath.row].id)"
}
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let id = store.rows[indexPath.row].id
if let store = store.scope(state: \.rows[id: id], action: \.rows[id: id]) {
navigationController?.pushViewController(RowDetailViewController(store: store), animated: true)
}
}
}