Code below in the `didSelectRowAt` function shows how we can retrieve an item and segue to a detail view controller.
import UIKit
struct Country: Hashable {
let name: String
}
class DetailViewController: UIViewController {
private var country: Country
init(country: Country) {
self.country = country
super.init(nibName: nil, bundle: nil)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
class SampleViewController: UIViewController {
private var dataSource: UICollectionViewDiffableDataSource<Int, Country>!
private var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension SampleViewController: UITableViewDelegate {
// segue to detail view controller
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
guard let country = dataSource.itemIdentifier(for: indexPath) else {
return
}
let detailVC = DetailViewController(country: country)
navigationController?.pushViewController(detailVC, animated: true)
}
}