Контроллер навигации и заголовок для предыдущего экрана в навигации?

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

Имеет ли предыдущий экран (экран, на который нажата кнопка «Назад») … имеет ли это имя? (Как и предыдущий элемент управления, что-то вроде этого)?

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

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

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

Благодаря !

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

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

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

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

 NSUInteger arraySize = [navController.viewControllers count]; UIViewController* prevController = [navController.viewControllers objectAtIndex:count-2]; 

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

FYI, если вы пытаетесь просмотреть весь стек контроллеров view, тогда UINavigationController имеет свойство «viewControllers», которое реализовано как NSArray.

  • Проблема ротации IOS6
  • Прямая кнопка UINavigationBar не отображается
  • Ориентация не изменяется после нажатия (push segue) a Вид на UINavigationViewController
  • Добавление контроллера сегмента на панели навигации во второй строке
  • Как вставить UINavigationController внутри UITabBarController
  • Совместное использование того же UIViewController как rootViewController с двумя UINavigationControllers
  • Контроллер навигации popViewControllerAnimated: yes работает не так, как ожидалось
  • presentViewController не поддерживает ориентацию в iOS 6
  • Навигационный стек становится непригодным после отмены iOS 7 назад
  • Почему self.bounds.size.height не учитывает навигационную панель UINavigationView в этом коде?
  • В представлении UITableViewController неверный фрейм при вводе в встроенный UINavigationController
  • Interesting Posts

    Когда iPad очищает библиотеку / кеши?

    Как показать количество раз, когда функции вызываются в Инструментах Time Profiler

    Как сказать во время выполнения, работает ли приложение iOS с помощью тестовой установки TestFlight

    Фильтрация / заказ MKLocalSearch ответ

    Использует ли Apple UICollectionView в коммутаторе приложений на iOS?

    Обрезка видео AVAsset с AVFoundation

    Xcode: прикрепление физических объектов к узлам в редакторе файлов .sks, как показано в примере кода «Приключение»,

    Как установить тайм-аут запроса и политику кэширования в AFNetworking 2.0?

    iOS 8.2 не поддерживается в Xcode 6.3 beta

    iOS: добавление UITapGestureRecognizer в представление контейнера перехватывает метод didSelectItemAtIndexPath UICollectionView

    Производительность измерительного кода игровой площадки XCode 6

    Не удается добавить тесты устройств в существующее приложение для iOS.

    UICollectionView 3 столбчатая сетка, 1px пробел ??? (изображение включено)

    Отделение Глубокая ссылка не открывается

    Анимация cocos2dx отстает всякий раз, когда admob получает объявление

    Давайте будем гением компьютера.