Это только из документов, но здесь мы идем: Используйте NavigationController и манипулируйте массивом в
- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated
, где последний элемент, добавленный в массив, становится верхним элементомстека навигации.Из документов:
Если анимации включены, этот метод решает, какой тип перехода выполнять в зависимости от того, находится ли последний элемент в массиве элементов в стеке навигации.Если контроллер представления в настоящее время находится в стеке, но не является самым верхним элементом, этот метод использует всплывающий переход;если это самый верхний элемент, переход не выполняется.Если контроллер представления не находится в стеке, этот метод использует push-переход.Выполняется только один переход, но когда этот переход завершается, все содержимое стека заменяется новыми контроллерами представления.Например, если контроллеры A, B и C находятся в стеке, и вы устанавливаете контроллеры D, A и B, этот метод использует pop-переход, и результирующий стек содержит контроллеры D, A и B.
т.е. если у вас есть контроллеры вида A a B, создайте массивы
{A, B} {B, A} {A} {B}.
и, скажем, вамначните с первой страницы, обозначающей A. Затем вы хотите принудительный переход к B, установите для массива значение {B}, обратите внимание, что:
Если контроллер представления не находится в стеке, этот метод используетpush-переход.
В следующий раз установите для него значение {A} и т. д. для итерации в прямом направлении.Теперь, если вы хотите всплывающий переход от B к A, обратите внимание, что
Если контроллер представления в данный момент находится в стеке, но не является самым верхним элементом, этот метод использует всплывающий переход;
вы устанавливаете его на {B, A} и наоборот от A до B. Затем, конечно, после анимации (?), Просто вернитесь к массивам {A} и {B}, чтобы вернуться к исходномуточка - если контроллер представления уже является верхним, переход не выполняется.Удачи;)