Как сделать так, чтобы ячейка переносила пользователя на свой собственный контроллер представления вместо того же самого? - PullRequest
0 голосов
/ 21 сентября 2019

сильный текст. Я работаю над приложением для запоминания, но я хочу, чтобы при щелчке по ячейке вы переходили к этим ячейкам viewController.Я создал переход между ячейкой-прототипом и представлением, но каждая ячейка переносит меня на тот же контроллер, который был отредактирован.Как я могу это исправить?Я не пытаюсь передать данные из tableView в ViewController, но хочу, чтобы каждая ячейка имела свое собственное представление, а не одно и то же для всех них.

Вот мой код ячейки и следующий код:

func insertNewCell() {
    guard save(name: addNewMemory.text!) else { return }
         let indexPath = IndexPath(row: favourites.count - 1, section: 0)
         tableView.insertRows(at: [indexPath], with: .automatic)
         addNewMemory.text = ""
         view.endEditing(true)
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: "Cell")

//MARK:- New CoreData methods
   let favMemory = favourites[indexPath.row]
   cell.textLabel?.text = favMemory.value(forKeyPath: "name") as? String
if #available(iOS 13.0, *) {
   cell.backgroundColor = UIColor.tertiarySystemFill
} else {
  // Fallback on earlier versions
}
  return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
   tableView.deselectRow(at: indexPath, animated: true)

   performSegue(withIdentifier: "ShowDetail", sender: self)
}

1 Ответ

0 голосов
/ 21 сентября 2019

Проблема в том, что вы пытаетесь выполнить сегментацию с одним и тем же идентификатором каждый раз.Вы можете изменить это, создав отдельную функцию, которая принимает ввод (тип String) и выполняет переход в соответствии с этим.Например:

func segueTo(identifier:String)
{
    performSegue(withIdentifier: "\(identifier)", sender: self)
}

использовать этот тип функции вместо в didSelect .... получить имя идентификатора segue в соответствии с выбранной ячейкой на основе его indexPath (это можно сделать с помощью некоторого массива, сохраняющего идентификаторы дляячейки), чтобы изменить имя segueIdentifier, в соответствии с которым viewController вы хотите перейти.

Это должно привести вас к другому viewController, куда вы хотите перейти.Надеюсь, это достаточно ясно.

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