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

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

  • Подписание приложения iPhone: действительный идентификатор подписи, соответствующий этому профилю, не найден в вашей цепочке ключей
  • Как реализовать метод swizzling swift 3.0?
  • UIBarButtonItem не выравнивается по вертикали на пользовательской высоте UIToolbar
  • Почему мой идентификатор подписки на распространение iOS отменяется?
  • Обновление XCode 5 разбивает раскладку сцен
  • Настройки сборки iOS 6 vs 7
  • не отображает сборку в магазине Apple, используя xcode 8
  • Результаты поиска iOS
  • Как изменить время, необходимое для получения моментального снимка в Xcode UI Test (XCUITest)?
  • Методы делегатов UITextView
  • ABMultiValueGetCount - kABPersonSocialProfileProperty всегда возвращает 0? Как я могу получить информацию в Facebook из адресной книги?
  • Сбой проектов после переименования
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.