2015-06-08 4 views
0

У меня есть два UINavigationControllers, как это:Добавить UINavigationController к навигации стека

LoginNavigationController -> LoginView 
HomeNavigationController -> HomeView -> ... 

От LoginView я перейти к HomeView модально так:

[self presentViewController:HomeNavigationController animated:YES completion:nil]; 

Когда приложение идет на фоне я использую наблюдателя в LoginView, который отклоняет HomeNavigationController.

Существует случай, в котором я должен представить HomeNavigationController напрямую, не запрашивая у пользователя логин. Я делаю это из другого раскадровки и восстановить свой корневой контроллер представления:

AppDelegate *appDelegate = [UIApplication sharedApplication].delegate; 
UIStoryboard *secondStoryboard = [UIStoryboard storyboardWithName:kStoryMain bundle:nil]; 
UINavigationController *homeViewController = (UINavigationController *)[secondStoryboard instantiateViewControllerWithIdentifier:kControllerHomeNavigation]; 
appDelegate.window.rootViewController = homeViewController; 
[appDelegate.window makeKeyAndVisible]; 

Но когда приложение переходит в фоновый режим, я все еще должен перенаправлять LoginView.

Есть ли способ перенаправить на LoginNavigationController, добавить наблюдателя и представить модально HomeNavigationController, и все это будет беспрепятственно для пользователей без их уведомления о том, что Login создается? Если нет, должен ли я каким-то образом изменить свой подход к задаче?

+0

Зачем вам нужно показывать loginview, когда пользователь переходит на задний план? – iEngineer

ответ

0

Вы можете использовать этот подход, чтобы получить необходимые результаты бесшовно,

1) Сделать HomeNavigationController как корневой контроллер представления вашего приложения.

2) В первом зрения HomeNavigationController говорят, что HomeViewController, переопределить viewWillAppear и проверить, если вам нужно, чтобы показать вид входа в систему (Вы можете проверить это, поставив любой флаг верно, когда пользователь вводит в фон или что-то).

3) Если вам нужно показать LoginNavigationController, показать его как модальный без анимации, как,

[self presentViewController: LoginNavigationController animated:NO completion:nil]; 

Пожалуйста, дайте мне знать, если вы нашли что-то в заблуждение.

Смежные вопросы