У меня есть ситуация в моем приложении, когда мне нужно отклонить контроллер модального представления через раскрутку перехода, а затем сразу после этого представить другой контроллер модального представления. Для этого я просто задерживаю вызов для представления нового контроллера представления на 1,0 секунды. Это может не работать все время, возможно, если по какой-то причине закрытие занимает больше времени, второй контроллер представления не сможет появиться, потому что происходит переход. Я только что столкнулся с этой ситуацией, хотя в этом случае это сработало. Это было зарегистрировано:
Предупреждение. Попытка начать презентацию во время ее проведения!
Я ищу лучшее решение. Я задавался вопросом, можно ли будет вызвать новый контроллер представления после того, как первый будет полностью отклонен, с помощью обратного вызова, но нет performSegueWithIdentifier с блоком завершения.
Как я могу закрыть модальный контроллер представления, а затем представить новый, всегда гарантируя отсутствие конфликта?
Это мое текущее решение:
[self performSegueWithIdentifier:@"Unwind Segue" sender:self]; //dismiss modal or pushed VC
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[tabBarController performSegueWithIdentifier:@"Show New VC" sender:self]; //present new modal VC
});
tabBarController. Это сложное приложение с множеством экранов, и я не хотел создавать переход к этому контроллеру представления из каждого отдельного контроллера представления. Кроме того, в этом сценарии действительно желательно вернуться на главную страницу. - person Jordan H   schedule 18.07.2014viewDidDisappearконтроллера представления, который раскручивается? Например, как только он исчезнет, скажите родительскому контроллеру представления выполнить переход. - person Eric Amorde   schedule 18.07.2014