Ошибка перехода objc

#ios #objective-c #xcode #segue #ios10

#iOS #objective-c #xcode #segue #ios10

Вопрос:

ПРИВЕТ, я продолжаю получать причину ошибки: ‘Завершение работы приложения из-за неперехваченного исключения ‘NSInvalidArgumentException’, причина: ‘У Receiver () нет перехода с идентификатором ‘MainToEndUserAgreement»‘

Я точно знаю, что контроллеры подключены, и имя является правильным для перехода.

Вот раскадровка

Сначала я попробовал [self performSegueWithIdentifier:@"MainToEndUserAgreement" sender:self];

Затем после исследования я попытался: [instantiateViewControllerWithIdentifier:@"MainToEndUserAgreement"];

и

 `self.storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];`
  

EndUserAgreementViewController *willthiswork = [[EndUserAgreementViewController alloc] init];

Ни то, ни другое не сработало.

При каждом изменении я стирал данные с устройства и очищал проект.

Что еще я могу попробовать?

Комментарии:

1. Возможны две причины; 1. Идентификатор перехода неверен; ваш снимок экрана, похоже, указывает на то, что это не так, поэтому 2. Контроллер представления, с которого вы выполняете переход , не тот, который, по вашему мнению, настроен / настроен в раскадровке.

2. Вторая причина была довольно близка к проблеме, но это заставило меня задуматься. Спасибо!

Ответ №1:

Ошибка связана с переходом под названием «LoginToMap». Но вы фокусируетесь на другом переходе, «MainToEndUserAgreement». Где вы пытаетесь выполнить LoginToMap segue? Кажется, либо он не существует, либо вы отправляете performSegue не в тот VC.

редактировать: тогда что такое «self», когда вы выполняете переход? Предположительно, это другой VC, чем исходный VC segue в раскадровке.

Что бы ни было «self», у него нет перехода с таким именем.

Комментарии:

1. Мой плохой, я возился с именем для тестирования, отредактирую его сейчас.

2. Если вы не собираетесь голосовать, вы можете не получить еще много ответов 🙂

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