У меня есть UITabBarController с 2 элементами, где каждый элемент указывает на контроллер представления типа Navigation Controller.
Второй элемент - это страница входа в мой веб-сервис.
Пользователь, который не вошел в систему, увидит страницу входа -> " LoginViewController ".
Если пользователь уже вошел в систему, там будет другое представление -> " LoggedViewController ".
При запуске в моем AppDelegate я проверяю, вошел ли пользователь в систему или нужно войти в систему, и я меняю представления.
if (!logged) {
LoginViewController * nextView = [[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil] autorelease];
NSMutableArray * tabBarRootViews = [[NSMutableArray alloc] initWithArray:self.tabBarController.viewControllers];
[tabBarRootViews replaceObjectAtIndex:1 withObject:nextView];
[self.tabBarController setViewControllers:tabBarRootViews animated:YES];
} else {
// Same if the user is logged only diff view
}
Когда представление отображается, оно перекрывает UINavigationBar.
Я полагаю, что проблема заключается в том, что я пытаюсь заменить UINavigationController на UIViewController, но я не могу разобраться в этой проблеме.
- Есть идеи, как это решить? (Я хочу видеть и UITabBar, и UINavigationBar, и UIViewController посередине)
- Это правильный способ изменить ViewControllers? Должен ли я использовать PresentModalView вместо?
Спасибо!