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

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

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

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

Solutions Collecting From Web of "Segue не будет отображать ViewController при нажатии"

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

 @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")

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