Не могу вызвать сегмент в коде (Swift)
У меня есть несколько видов, встроенных в навигационный контроллер.
Я создал несколько сегментов (некоторые из кнопок к другим контроллерам вида,некоторые из одного контроллера вида к другому.
Например, у меня есть сегмент (Show) от одной кнопки до контроллера вида name2, когда я нажимаю кнопку, она отлично работает, но когда я пытаюсь вызвать ее программно, приложение вылетает и выдает ошибку.
Вот как я называю переход на ViewController1
self.performSegueWithIdentifier("name2", sender: self)
Это от ViewController1 до ViewController2
У меня также есть сегмент, который подключен не к кнопке, а от vc1 до vc2, дает ту же ошибку.
Это странная ошибка, которую я получаю:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (ViewController2) has no segue with identifier 'name2''
Я попробовал очистить продукт, а также перезагрузить симулятор.
Снимок экрана моей раскадровки
Экран инспектора идентификации viewcontroller1 (он фактически называется ViewController в моем проекте)
Снимок экрана segue (name3)
Варианты перехода :
Редактировать:
Я обнаружил, что когда я подключаю кнопку в качестве IBAction, а затем вызываю performSegueWithIdentifier("LogIn", sender: self)
из кнопки, она работает правильно.
Какая-нибудь помощь?
5 ответов:
Не подключайте вашу кнопку в Редакторе раскадровки к другому сегменту (когда вы хотите вызвать функцию performWithSegue в вашем ViewController1) - просто подключите первый ViewController ко второму.
Тогда вы можете использовать
self.performSegueWithIdentifier("name2", sender: self)
В классе ViewController1.
Ошибка говорит, что вы ищете сегмент в
ViewController2
, но ваш вопрос утверждает, что сегмент исходит от кнопки. Это объясняет, почему его нельзя найти.