Как выбрать строку в UITableView? - PullRequest
0 голосов
/ 08 октября 2019

Я хочу выбрать строку UITableView с переопределением следующей функции:

class table:  NSObject, UITableViewDelegate, UITableViewDataSource{
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath) {
            print("NEVER")  
        }
    }
}

, но никогда не показывать печать, почему? что не так в моем коде?

class OtherClass: UIViewController {
    var table = Table()

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        let mtv = UITableView()
        mtv.dataSource = table
        mtv.delegate = table

        view.addSubview(mtv)
    }
}

для получения дополнительной информации:

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        var cell  = UITableViewCell()

        tableView.register(newCell.self, forCellReuseIdentifier:"newCell");
        cell =  tableView.dequeueReusableCell(withIdentifier: "newCell", for: indexPath) as! newCell
        cell.accessoryType = .disclosureIndicator;

        return  cell
    }
}

1 Ответ

0 голосов
/ 09 октября 2019

попробуйте это:

import UIKit

class ViewController: UIViewController {

    let cellID = "cellIdentifier"
    let table = Table()

    override func viewDidLoad() {
        super.viewDidLoad()

        let tableView = UITableView(frame: UIScreen.main.bounds, style: UITableView.Style.plain)
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellID)
        tableView.delegate = table
        tableView.dataSource = table
        view.addSubview(tableView)
    }
}

class Table: NSObject, UITableViewDelegate, UITableViewDataSource {
    let cellID = "cellIdentifier"

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath)

        return cell
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print("You selected: \(indexPath.row)!")
    }
}

Я не видел достаточно деталей, поэтому я просто строю один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...