Проблема UINavigationController popToViewController

Я использую UINavigationController для работы с навигацией контроллеров

В нормальном случае

RegistrationView -> LoginView -> HomeView

Из HomeView и других контроллеров открывается один экран с названием «Настройка», в котором есть кнопка «Выход». При щелчке по этой кнопке экран будет выведен в LoginView в обычном случае.

- (IBAction)btnLogoutSelected:(id)sender { NSArray *navArr=self.navigationController.viewControllers; for (UIViewController *nav in navArr) { if ([nav isKindOfClass:[LoginViewController class]]) { [self.navigationController popToViewController:nav animated:YES]; } } } 

Как только пользователь будет зарегистрирован, и если пользователь выполнит вход в систему один раз, здесь приложение имеет функции автозагрузки. Поэтому в то время LoginView не будет отображаться в списке навигации. Поэтому в этом сценарии выше код не работает. Поэтому в то время я не могу войти в LoginView. Мне нужна помощь в решении этой проблемы. заранее спасибо

2 Solutions collect form web for “Проблема UINavigationController popToViewController”

Если у вас нет экземпляра LoginViewController в стеке навигации, просто создайте его:

  LoginViewController* loginController = [[LoginViewController alloc] init]; //use appropriate initWith... method 

Затем вы можете использовать свойство viewControllers UINavigationController. Вы можете заменить текущий контроллер вида loginController или вставить loginController по указанному индексу и loginController на него.

 NSMutableArray* newViewControllers = [self.navigationController.viewControllers mutableCopy]; [newViewControllers replaceObjectAtIndex:[newViewControllers indexOfObject:self] withObject:loginController]; [self.navigationController setViewControllers:newViewControllers animated:YES]; 

Попробуй это

 if ([self.navigationController.viewControllers containsObject:objLogin]) { [self.navigationController popToViewController:objLogin animated:TRUE]; } else { [self.navigationController pushViewController:objLogin animated:TRUE]; } 
  • Проблема контроллера контроллера в контроллере контейнера
  • Переход между прозрачной навигационной панелью в полупрозрачный
  • Почему ARC не освобождает память после popViewController
  • Странное поведение NavigationBar после нескольких нажатий и pop с анимацией NO. IOS 7
  • Добавление индикатора активности в панель навигации
  • presentViewController не поддерживает ориентацию в iOS 6
  • Как изменить анимацию Push и Pop в приложении на основе навигации
  • Универсальный глобальный элегантный способ добавления элементов панели кнопок в любой UIViewController проекта
  • Нажатие навигационного контроллера после отображения модального контроллера
  • как создать стиль pinterest, скрывающий / скрывая панель навигации / вкладки?
  • Изменение statusBar цвет фона при использовании большого заголовка для панели навигации на iOS 11
  • Interesting Posts

    Лучше ли наблюдать свойства или переопределять сеттеры?

    Как локализовать имя моего приложения в App Store

    iOS 8, PhotoKit, PHAsset, уникальный идентификатор

    Может ли UITextView отображать сверху вниз?

    UIImagePickerController & view не находится в иерархии окон

    Создание видео из массива UIImage с различными анимациями перехода

    Почему слабый IBOutlet NSLayoutConstraint превращается в ноль, когда я делаю его неактивным?

    Наблюдает ли NSFetchedResultsController все изменения в постоянном хранилище?

    Неправильные загрузочные контейнеры, изготовленные с быстрым

    Блок завершения сети, цикл рекурсии и ARC-сохранения

    Indexeddb в Chrome на IOS – если доступно?

    Есть ли способ поиска в магазине приложений iOS в Интернете?

    Новые ibeacons, не обнаруженные в моем приложении

    Рамка и рамки CAShapeLayer

    Непрерывная интеграция Xcode: Конфигурированный получатель не найден

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