Если я отклоняю модальный VC и представляю его (или еще один) за меньшее, чем определенное количество времени, он не появляется. Я что-то упустил?presentModalViewController не работает, если вызвано слишком рано
ответ
Да, вы не можете этого сделать. Я предполагаю, что вы сделали что-то вроде этого:
[self dismissModalViewControllerAnimated:YES];
[self presentModalViewController:myNewController animated:YES];
Это не работает. Я не знаю точно, почему, но это связано с анимациями, которые я считаю. Ваши варианты должны либо отклонить первый из них без анимации, либо еще ждать, чтобы представить новый в viewDidAppear родителя (или, возможно, viewDidDisappear для предыдущего модального представления, не уверен, что это работает).
вы не можете отклонить два модальные контроллеры просмотра сразу после другого, кроме того, что другой плакат предложил, вы можете подождать небольшое количество времени, прежде чем отвергая другой модальный вид, например
[self performSelector:@selector(method) withObject:nil afterDelay:.5];
где метод называется просто отклоняет ваш другой вид модальности. Фрагмент кода выполняет селектор через 0,5 секунды и может использоваться, когда возникают проблемы синхронизации анимации, такие как тот, который вы описываете, чтобы разделить время вызова, чтобы они могли правильно выполняться.
Это немного опасно (не так много), если анимация увольнения дольше, чем ваша задержка, ваш модальный vc все равно не появится. (И тайминги могут измениться с обновлениями к ОС.) Подходы Алекса невосприимчивы к этой проблеме. –
Причина, по которой это не работает, заключается в том, что контроллер просмотра игнорирует свою ссылку на модальный vc, когда анимация завершена. Поэтому он не думает, что у него есть другой контроллер представлений, чтобы представить модально больше. Оба предлагаемых вами решения будут работать. –
В ответах, размещенных здесь, есть более подробная информация об этих двух подходах. http://stackoverflow.com/questions/3919845/presenting-a-modal-view-controller-immediately-after-dismissing-another/3919870#3919870 –