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

Поэтому, если я нахожусь на экране, я могу перейти к следующему навигационному экрану с помощью 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, это облегчит мою задачу и станет отличным опытом обучения.

2 Solutions collect form web for “Контроллер навигации и заголовок для предыдущего экрана в навигации?”

Вы можете это сделать, используя свойство 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.

  • Facebook SDK 4.7 Обработка ошибок входа в систему
  • Проверка активов в App Store в приложении Loader
  • Как добавить номер интеграции хоста Xcode в сценарий сборки
  • Неподдерживаемая операция. Приложениям запрещается прослушивать уведомления о блокировке устройства.
  • Xcode Instruments не может выполнять моментальные снимки утечек при работе на устройстве
  • Xcode ПРЕДУПРЕЖДЕНИЕ: неиспользуемый объект: неиспользуемая переменная
  • Swift - удаление пробелов из строки не работает
  • Невозможно обработать запрос lookupSoftwareForBundleId в это время из-за общей ошибки
  • Установить цвет (или другие свойства) UIView в xib-файле PER TARGET
  • Кодовая база для статической библиотеки iOS для приложений с белой меткой
  • Xcode запускает сценарий фазы в неправильном кодировании Ruby
  • Interesting Posts

    Симулятор Core Location на Xcode 4.2 Не работает -Любые подсказки?

    Обработка хранилища изображений в Firebase с помощью Swift

    UIButton не показывает подсветку, когда действие селектора заключается в том, чтобы нажать новый UIViewController

    Автоматическая компоновка, поворот экрана и анимация UIView

    Несколько UIPickerView в том же UIView

    мое приложение ответит на схему URL?

    Мне нужно создать приложение для смартфонов, которое можно запустить на всех смартфонах. Как я могу это сделать?

    Могу ли я запускать приложение, которое устанавливается на iPhone с помощью appium без предоставления пути .app

    Несколько видео, один и тот же экран

    iOS – загрузка контроллера навигации по коду

    Коснитесь событий в appDelegate

    Как заполнить UIBezierPath градиентом?

    Xcode 7 с устройством iOS 9 Ошибка: устройство недоступно (не удалось найти образ диска разработчика)

    Инициализировать MvvmCross в фоновом режиме на iOS

    Отсутствует возврат UITableViewCell

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.