Я видел много похожих вопросов о SO, и, насколько я вижу, все они предполагают, что мы не должны нажимать/всплывать любые виды, в то время как текущий вид viewWillAppear имеет не вызываемый или вызов isViewLoaded возвращает false.Неуравновешенные вызовы для перехода на начало/конец для UIViewController
В моем примере я пытаюсь нажать новое представление в методе viewWillAppear текущего вида, и перед тем, как нажать его, я также вызываю [self isViewLoaded], чтобы посмотреть, загружено ли текущее представление (которое есть), но я все еще продолжайте получать вышеуказанную ошибку.
Единственный способ, которым я был в состоянии решить эту проблему (это взломать), - это спящий режим в течение нескольких секунд, прежде чем я нажму на другой поток пользовательского интерфейса.
Поскольку сон в течение нескольких секунд до того, как вызов фактически заставляет работать толкание, я предполагаю, что хотя и «viewWillAppear» уже вызывается, а [self isViewLoaded] истинно, по-прежнему иногда слишком рано нажать/поместить другой вид (может быть, сделать анимацию еще не завершена?).
Я что-то упускаю? Есть ли другой метод, отличный от «viewWillAppear» или [self isViewLoaded], который будет показывать% 100, что представление полностью загружено, и все анимации завершены, чтобы я мог безопасно нажать/поместить другие виды?
Спасибо, попробуем это позже сегодня и сообщите, если это сработает (нужно уйти сейчас). Я согласен, что это не лучший дизайн, но в основном, когда я создаю первый вид, я также делаю вызов webservice и возвращаю некоторые данные. В зависимости от данных я либо останусь на одном экране, либо перейду к другому виду. Рефакторинг этого потока в настоящий момент не является вариантом, если все остальное не сработает. – DarkAPI
Просто попробовал ваше предложение, и оно работает. Благодарю. – DarkAPI