Как я могу перейти на основе того, какая ячейка была нажата в UITableViewCell? - PullRequest
1 голос
/ 29 января 2020

У меня есть контроллер представления со встроенным представлением таблицы, хотя в нем всегда одни и те же десять ячеек, я сделал его динамическим c, так как вы не можете сделать stati c ячейку табличного представления внутри UIViewController. У меня вопрос, в prepare(for:) как я могу перейти к контроллеру представления, в зависимости от того, какая ячейка была нажата? Каждая клетка должна указывать ie на совершенно другой V C, но я думаю, что десять сегментов - это беспорядок.

Есть ли лучший способ?

1 Ответ

2 голосов
/ 29 января 2020

Вы можете реализовать протокол UITableViewDelegate для фактического обнаружения прослушиваемой ячейки:

extension MyOriginViewController {
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        // I'm assuming you have only 1 section
        switch indexPath.row {
            case 0:
                // Instantiate the VC
                let vc = storyboard?.instantiateViewController(withIdentifier: "MyViewControllerIdentifier")
                // Present the view controller, I'm using a UINavigationController for that
                navigationController?.push(vc, animated: true)
            case 1:
                // Another VC and push or present modally
                let vc = ...
                self.present(vc, animated: true, completion: nil)
            default:
                // Default case (unconsidered index)
                print("Do something else")
        }
    }
}

Так что если у вас есть это: Storyboard

Вы можно сделать:

let vc = storyboard?.instantiateViewController(withIdentifier: "MyNavController")
self.navigationController?.present(vc, animated: true, completion: nil)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...