Проблема 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]; } 
  • Есть ли способ вернуться к предыдущему контроллеру навигации?
  • получение сообщения «Не удалось загрузить источник: 6» при вызове «pushViewController» ??? (код прилагается)
  • Удаление диспетчеров просмотра из стека навигации
  • Различные проявления в разных UINavigationControllers
  • Как нажимать кнопку «Назад» в UINavigationController программно
  • presentModalViewController ничего не делает
  • iOS Tinder / Twitter, такие как слайдер пейджинговая навигация и меню
  • Силовой ландшафт для одного контроллера ios
  • Как я могу управлять потенциальным бесконечным нажатием контроллеров представлений в стеке контроллера навигации? IOS
  • viewDidAppear дважды называется iOS5
  • Как представить контроллер просмотра в портретном или ландшафтном режиме, в приложении, предназначенном только для портрета
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.