Intereting Posts
Проверка iTunes Reciept – in_app empty UITableView beginUpdates / endUpdates указывает тип анимации передача Int из одного ViewController в другой с помощью segue Обновить анимацию / вращающееся колесо не останавливается / исчезает с помощью «self.refreshControl.endRefreshing ()» на iOS 10 Где добавить вид индикатора активности? Выполнение segue после завершения загрузки Добавление файла в исходное управление SVN> добавление серым цветом в XCode 4 Предикат «IN» очень медленный на устройстве (разница 83 раз) Default.png – en-gb / Локализация Worldworld iOS (Re) Используйте NIB в качестве шаблона Получение эскизов для файлов (первая страница) с использованием SkyDrive api ios UISplitViewController получает неправильные данные ViewController в портретном режиме Альтернативный способ отклонить контроллер просмотра без вызова self.dismissViewController Сохранять высоту UINavigationBar как 64 точки при скрытии UIStatusBar Переносить данные с ios на устройство Windows Ce через Bluetooth?

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

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