Я использовал альтернативный метод, который работал довольно хорошо для меня.Просто оберните вызов pushViewController:animated:
в аргумент animations:
[UIView animateWithDuration:animation:completion
.Поместите все, что вам нужно, чтобы выполнить по завершении, например, нажав на последующий контроллер, что я и делаю, в completion:
.
В моем случае, я запускаю все это в методе, который принимает массив (NSMutableArray) со списком контроллеров, которые нужно выдвинуть в качестве аргумента.В блоке completion:
метод извлекает первый элемент из массива (objectAtIndex:0
и removeObjectAtIndex:0
) и вызывает себя вместе с остатком массива.
Это забавно продолжение-прохождение-стиль реализация :) Однако следует отметить, что в конце анимации содержимое нового контроллера навигации может загружаться не полностью, поэтому этот метод надежен только в том случае, если ваши нажатия не зависят от этого содержимого.