2016-01-21 2 views
1

У меня возникли проблемы с организацией процесса регистрации/входа в приложение. В настоящее время у меня есть точка входа в сценарий приложения, указывающая на навигационный контроллер. В AppDelegate.m если пользователе не вошедший в есть:Несколько навигационных контроллеров

SignUpViewController *signUpViewController = [[SignUpViewController alloc] init]; 
    self.navController = [[UINavigationController alloc] initWithRootViewController:signUpViewController]; 
    self.window.rootViewController = self.navController; 
    [self.window makeKeyAndVisible]; 

Это создает «подписаться» навигационного контроллера.

Я попытался поместить этот SignUpViewController вместе с навигационным контроллером, чтобы перейти к первому экрану приложения (вначале указатель навигации указал на раскадровку), но я не имел никакого успеха.

+0

Вы пробовали удаление 'SignUpViewController' этим кодом '[signUpViewController.view removeFromSuperview];' – SeraZheng

ответ

1

При использовании раскадровки (и, следовательно, имеет первоначальный вид контроллер там), что IOS делает для вас, чтобы установить window.rootViewController быть контроллером с этим первоначального видом контроллера флагом вида.

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

Одним из решений может быть добавление логики на первом контроллере представления, который идентифицирует, зарегистрирован ли пользователь, и в случае, если вы не нажмете (или не представите модно, если хотите) SignUpViewController. Надеюсь, это поможет.

1

Вы уже установили self.navController как rootViewController окна. Чтобы выполнить то, что вы хотите, вы можете сделать один из них:

  • Программно заданный навигационный контроллер, изначально указываемый в раскадровке, как rootViewController. Затем представите RegistrationViewController как модальный.

или

  • Представить SignupViewController (как модальный) от первоначального контроллера представления в раскадровке, а не в приложение делегата
Смежные вопросы