UITableViewでチェックリストを作ってみたのですが、現在Cellを押すとチェックリストのUIImageが変更されます。Cellを押すと別のUITableViewに移動でき、UIImageを押下時にのみ画像が変更されるようにするにするにはどうすればいいでしょうか?

import UIKit

class ViewController : UIViewController, UITableViewDelegate, UITableViewDataSource {

    let statusBarHeight = UIApplication.shared.statusBarFrame.height

    var checkListItem: [String : Bool] = [
        "アイテム1" : false,
        "アイテム2" : false,
    ]

    let tableView = UITableView()

    override func viewDidLoad() {
        super.viewDidLoad()

        // UITableView の作成
        tableView.frame = CGRect(
            x: 0,
            y: statusBarHeight,
            width: self.view.frame.width,
            height: self.view.frame.height - statusBarHeight
        )
        tableView.delegate = self
        tableView.dataSource = self
        self.view.addSubview(tableView)
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        var keys = [String](checkListItem.keys)

        keys.sort()

        let cellText = keys[indexPath.row]

        let cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
        cell.textLabel?.text = cellText

        if self.checkListItem[cellText]! {
            cell.imageView?.image = UIImage(named: "checked")
        } else {
            cell.imageView?.image = UIImage(named: "unchecked")
        }

        return cell
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        if let cell = tableView.cellForRow(at: indexPath) {

            let cellText = cell.textLabel?.text

            if cell.imageView?.image == UIImage(named: "checked") {

                self.checkListItem.updateValue(false, forKey: cellText!)
                cell.imageView?.image = UIImage(named: "unchecked")
            } else {

                self.checkListItem.updateValue(true, forKey: cellText!)
                cell.imageView?.image = UIImage(named: "checked")
            }

            cell.isSelected = false
        }
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 56
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.checkListItem.count
    }
}