Контроллер навигации и Название для предыдущего экрана в навигации? - PullRequest
3 голосов
/ 13 июня 2011

Так что, если я нахожусь на экране, я могу перейти к следующему экрану навигации, используя pushViewController, и я просто перехожу на следующий экран с кнопкой BackButton к предыдущему экрану.

Имеет ли предыдущий экран (экран, к которому нас подталкивает кнопка назад) ... есть ли у него имя? (Как и предыдущий ViewController OS что-то в этом роде) ??

Моя цель за этим вопросом:

Если у меня 5 экранов (1, 2, 3, 4, 5 соответственно) ... допустим, я перехожу с 1 -> 3, а в другом случае я перехожу с 2 -> 3. Я хочу сказать, что если «PreviousViewController был 1», то переходите от 3 до 4 (1 -> 3 -> 4), иначе, если предыдущийViewController был 2, я хочу перейти к 3 до 5 (2 -> 3 -> 5) ...

Как мне сделать что-то подобное?

Спасибо!

приписка Я знаю, что я мог бы также попробовать что-то разумное и логичное с другим подходом и просто pushViewController соответственно. Но если есть решение для проверки предыдущего ViewController, это облегчит мою задачу и станет отличным опытом обучения.

Ответы [ 2 ]

8 голосов
/ 13 июня 2011

Вы можете сделать это, используя viewControllers свойство UINavigationController. Вот что Apple говорит об этом:

Контроллер корневого представления имеет индекс 0 в массиве, контроллер заднего обзора - индекс n-2, а верхний контроллер - индекс n-1, где n - количество элементов в массиве. *

Ваш «предыдущий контроллер» - это то, что Apple определяет «контроллер заднего вида», соответствующий индексу n-2:

NSUInteger arraySize = [navController.viewControllers count];
UIViewController* prevController = [navController.viewControllers objectAtIndex:count-2];
0 голосов
/ 13 июня 2011

Нет, предыдущий ViewController отсутствует. UINavigationController реализован в виде стека, поэтому вы продолжаете выдвигать контроллеры представления, и они могут выскочить из стека.

К вашему сведению, если вы пытаетесь просмотреть весь стек контроллеров представления, тогда UINavigationController имеет свойство под названием viewControllers, которое реализовано как NSArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...