TableView, didSelectRow не вызывается - PullRequest
0 голосов
/ 09 февраля 2020

Что я делаю не так? Объявление не работает.

это мой код.


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


      guard let appDelegate =
        UIApplication.shared.delegate as? AppDelegate else {
          return
      }

      let managedContext =
        appDelegate.persistentContainer.viewContext


      let fetchRequest =
        NSFetchRequest<NSManagedObject>(entityName: "Waypoints")


      do {
        waypoint = try managedContext.fetch(fetchRequest)
      } catch let error as NSError {
        print("Could not fetch. \(error), \(error.userInfo)")
      }
    }


extension ViewControllerWaypoints: UITableViewDataSource {


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

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


      let waypoints = waypoint[indexPath.row]

      let cell =
      tableView.dequeueReusableCell(withIdentifier: "Cell",
                                    for: indexPath)


                    cell.accessoryType = .disclosureIndicator
                    cell.isUserInteractionEnabled = true

     cell.textLabel?.text =
        waypoints.value(forKeyPath: "name") as? String
      return cell
    }


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

        print("User selected cell....") // 

     }



У меня проблема с кодом (при использовании табличного представления), объявление в функции: didSelectRowAt - не вызывается ... Что я делаю не так? Декларация не работает.

Большое спасибо за вашу помощь и за все ответы.

Ответы [ 2 ]

2 голосов
/ 09 февраля 2020

didSelectRowAt является частью протокола UITableViewDelegate, поэтому вашему контроллеру представления также необходимо соответствовать ему

extension ViewControllerWaypoints: UITableViewDataSource, UITableViewDelegate

, а затем вам необходимо установить контроллер представления в качестве делегата таблицы. просмотр в viewWillAppear или аналогичном

self.tableView.delegate = self
0 голосов
/ 09 февраля 2020

Вам необходимо установить делегат источника данных tableview в методе viewwilapear или viewdidload.

tableview.datasourse = self

Также вам необходимо добавить следующий код и реализовать UitableviewDelegate, как вы это делали с UiTableViewDataSourseDelegate.

tableview.delegate = self

Надеюсь, это поможет!

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