-[UIViewController presentModalViewController:animated:]
делает много магии за кулисами.
Для моего приложения Tweet Note Я хотел представить модальные контроллеры вида, анимируя новый вид с обратной стороны вида на полке. Более или менее то, что делает iBooks. Я попытался переопределить реализацию по умолчанию, но в итоге сделал это в многошаговом решении, которое работает без уродливых хаков и предостережений:
- Создание нового контроллера представления.
- Примените преобразование к управляемому представлению нового контроллера представления, чтобы оно началось в его исходном местоположении. 100
- Начать анимацию вида в нетрансформированное «нормальное» положение.
- Подождите, пока закончится анимация, и сделайте как единое целое:
- Удалить только что анимированный вид с экрана.
- Звоните
[self presentModalViewController:vc animated:NO]
.
Этот последний шаг важен! После завершения анимации перехода представьте контроллер модального представления в обычном режиме, но без анимации , и он будет отображаться пользователю так же, как если бы вы сделали правильную анимационную презентацию.
Отмена с вашим пользовательским переходом более или менее делает то же самое, но в обратном порядке.