Ситуация: У меня есть два контроллера представления (UIViewController), которыми управляет контроллер навигации (UINavigationController).При загрузке первый контроллер представления, своего рода экран ожидания, инициирует загрузку второго контроллера представления, что занимает некоторое время.Как и сейчас, первый контроллер представления не переходит на второй контроллер представления, пока не будут загружены все данные - что, как я понимаю, является нормальным поведением в UIKit.
Проблема: Я хочу, чтобы первый контроллер вида (экран ожидания) отображался как минимум 2 секунды, пока он ожидает загрузки второго контроллера вида.Проблема заключается в том, что иногда загрузка второго контроллера представления завершается раньше, чем через 2 секунды, и 2-секундное ожидание прерывается.
Сон: Я хочу, чтобы переход от первого к второму контроллеру представления к ЗАДЕРЖАНИЮ, пока не прошло 2 секунды.
A) Сценарий сна A: Если загрузка второго контроллера представления заканчивается до 2-секундной задержки, я хочу, чтобы переход (анимация, которую вы на самом деле видите) откладывался до тех пор, пока не будет выполнена 2-секундная задержка.
B) Сценарий сна B: Если до завершения загрузки осталось 2 секунды, переход (анимация, которую вы на самом деле видите) должен произойти нормально, как только загрузка будет завершена.
Есть ли какие-либо обратные вызовы или уведомления в target-c или какао, которые могут мне это сделать?
Спасибо.
Обновление / уточнения: ( Извините, было не так ясно, как я мог бы )На первый взгляд может показаться, что NSTimer может быть моим решением.Ну, к сожалению это не так. Я знаю, как использовать NSTimer , чтобы подтолкнуть контроллер представления после задержки (не проблема).Я фактически нажимаю второй контроллер вида сразу, когда загружается первый контроллер вида.Идея состоит в том, что, поскольку загрузка второго контроллера представления занимает некоторое время, я предоставляю пользователю хороший экран ожидания с первым контроллером представления.
Причина отсутствия контроля :Могут быть случаи, когда загрузка второго контроллера вида заканчивается быстро, и в этом случае первый контроллер вида может быть виден только в течение доли секунды.Это выглядит непрофессионально.Поэтому вместо этого я хочу показывать экран ожидания в течение постоянного времени для согласованности и дать краткую полезную информацию о приложении.Мое приложение - это книга, а экран ожидания больше похож на фрагмент Frontis - с заголовком и автором.