ios Best Practices - навигация и контроллеры вкладок и push / pop - PullRequest
0 голосов
/ 22 ноября 2011

Моя проблема:

Мое приложение требует, чтобы пользователь вошел в систему, поэтому первое, что я показываю, это представление входа в систему.Если мы вошли в систему, то мы показываем представление приложения, которое является контроллером панели вкладок.Одна из этих вкладок - информация об учетной записи + выход из системы.Выйдя из системы, я хочу вернуться к экрану входа в систему.

Мое решение:

Корневой вид - это контроллер навигации, который содержит основной вид.Основной вид прозрачен, просто говорит, что вы не вошли в систему?Вставьте экран учетной записи в стек.Если вы вошли в систему, поместите представление контроллера вкладок в стек.Каждая вкладка в контроллере вкладок является контроллером навигации.При нажатии на вкладку учетной записи представление учетной записи в представлении учетной записи помещается в стек.В представлении учетной записи есть кнопка выхода из системы, которая отображает 2 представления (и не работает):

 // Go to main view (2 views up) to show default login screen (as we won't be logged in anymore)
    UINavigationController *navController = self.navigationController;
    [navController popViewControllerAnimated:NO];
    [navController popViewControllerAnimated:YES];

В чем проблема, на мой взгляд:

Контроллер навигации, который у меня включенверхний уровень не совпадает с контроллерами навигации нижнего уровня в контроллере вкладок.

Моя проблема кажется довольно типичной, но мое решение кажется очень неуклюжим.Это не может быть лучшим способом сделать это!Любой совет?

1 Ответ

0 голосов
/ 22 ноября 2011

Попробуйте что-нибудь подобное? Это кажется запутанным, но давайте попробуем.

[self.navigationController popViewControllerAnimated: NO];
[self.tabBarController.navigationController popViewControllerAnimated: YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...