Segue не будет отображать ViewController при нажатии

В настоящее время у меня есть ViewController с ячейками прототипов в UITable View . В настоящее время cells отображают содержимое из базы данных Firebase при загрузке. То, что я хотел бы сделать, это когда cell нажата, дополнительная информация отображается из базы данных Firebase . Однако в настоящее время я не могу заставить ViewController нажать на ViewController из cell . Что я должен делать, это сработает?

Изображение моей раскадровки

введите описание изображения здесь

Это два фрагмента кода, которые помогут. Для быстрого:

 @IBAction func showEntries(_ sender: Any) { self.performSegue(withIdentifier: <sequeId>, sender: nil) } 

и кнопку с действием, обертывающим это.

Для Objective C вы можете выполнить segue так.

 [self performSegueWithIdentifier:@"showEditor" sender:self]; 

Создайте действие CTRL и перетащите кнопку или ячейку в соответствующий файл кода, выберите действие и назовите его. введите описание изображения здесь

Трудно сказать, но из скриншота похоже, что segue переходит от контроллера к контроллеру, а не к контроллеру. Если вы хотите сделать это так, то вам нужно дать segue идентификатор (в правой панели вашего снимка экрана), а затем переопределить метод делегата

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { performSegue(withIdentifier: "yourIdentifier", sender: self) } 

ИЛИ (если вам не хочется идти на все эти проблемы) … в раскадровке перетащите сегмент из ячейки на контроллер вида, который вы хотите нажать, а не от контроллера к контроллеру.

Например,

введите описание изображения здесь

Обратите внимание, что при выборе segue только ячейка выделена синим цветом, а не весь контроллер.

Это потому, что ячейки динамические, поэтому вы не можете назначить обработчик события из ячейки в uiviewcontroller. Вместо этого вы должны сделать segue внутри метода cellForRowAtIndexPath и оттолкнуть его оттуда. Если вы хотите видеть segue внутри раскадровки, тем не менее, вы также можете ctrl + перетащить из viewcontroller1 в viewcontroller2, чтобы сделать новый segue. Затем выберите segue и дайте ему идентификатор Storyboard. После этого вы можете вызвать self.performSegue(withIdentifier: "yourIdentifier")

Я действительно нашел решение этого. На самом деле проблема была довольно простой. Все, что мне было нужно, это изменить настройку выбора в атрибутах табличного вида из «Нет выбора» в «Единый выбор».

  • TableView показывает только контент при нажатии
  • Почему UIButton на UITableViewCell только нарисовал темнее, когда жест касания продолжился на короткое время
  • заполнение сгруппированного UITableView
  • Swift - литье под давлением
  • Асинхронное изображение iOS UITableViewCell загружает и изменяет высоту UITableView с использованием автоматического макета
  • UITableView внутри UITableViewCell меняет цвет на белый при выборе
  • Доступ к объектам NSMutableArray для использования в TableView
  • didSelectRowAtIndexPath работает неправильно с результатами поиска
  • Каков логический порядок методов загрузки UITableViewController?
  • Пользовательские кнопки смазки UITableView с TwitterKit
  • Можно ли получить indexPath, если вы знаете строку?
  • Interesting Posts
    Давайте будем гением компьютера.