При запуске моего приложения оно программно показывает LoginViewController с использованием перехода. Контроллер представления представлен модально с переходом, установленным на перекрестное растворение. После успешной аутентификации я хочу закрыть окно входа в систему, программно запустив переход. Поэтому я добавил это в свой заголовочный файл:
- (IBAction)unwindSegue:(UIStoryboardSegue *)segue;
теперь в IB я могу управлять перетаскиванием от «Владелец файла» LoginViewController к кнопке «Выход» и выбирать unwindSegue:
. Это создает ручной переход, он правильно отображается в инспекторах подключений для владельца файла и кнопки «Выход». Затем я нажимаю на только что созданный переход Unwind из сцены в IB и даю ему имя. Если я нажму кнопку «Перейти к» для действия «раскрутить переход», я перейду к объявлению, упомянутому выше.
Пока все хорошо, затем я запускаю этот переход после успешной аутентификации в моем блоке GCD:
....
dispatch_async(dispatch_get_main_queue(), ^
{
[self performSegueWithIdentifier:@"UnwindSegueIdentifier" sender:self];
[self.spinner removeFromSuperview];
self.spinner = nil;
});
..... и ничего не происходит, когда он работает. Спиннер удаляется правильно, но нет никаких признаков того, что этот раскручивающийся переход выполняется.
Точка останова в реализации unwindSegue:
никогда не срабатывает. Никаких ошибок не вылетает. В консоль ничего не пишет. Идентификатор правильный, трижды проверял (иначе все равно не получится).
Я посмотрел ответы здесь, здесь и здесь, но, похоже, я ничего не пропустил.
Однако я заметил, что Xcode считает, что unwindSegue:
не связан:
Я не могу перетащить из маленького пустого круга перед unwindSegue:
и связать его с кнопкой «Выход».
Любая помощь будет оценена.