У меня есть приложение для iPhone: Когда вы открываете приложение, вы видите «LoginView». Если вы войдете в приложение, вы увидите TabBarController. На третьей и последней вкладке есть кнопка «Выйти». Если вы нажмете, вы снова увидите «LoginView». Моя проблема в том, что если вы снова войдете в систему, вы увидите "старую" панель вкладок, а выбранная вкладка будет третьей, а не той, и есть кнопка "Выход". Кроме того, если пользователь вошел в систему с другим пользователем, просмотрите старые данные предыдущего пользователя (очень опасно).
Вот код: - Delegate.h:
UITabBarController *tabBarController;
LoginViewController *loginView;
- Delegate.m (didFinishLaunchingWithOptions):
[self.window makeKeyAndVisible];
loginView = [[LoginViewController alloc] init];
if (YES) { /* if the user is not already logged */
[self.window addSubview:loginView.view];
}
Delegate.m (методы):
- (void)loginComplete {
[loginView dismissModalViewControllerAnimated:YES];
[window addSubview:tabBarController.view];
}
- (void)logoutComplete {
[[tabBarController view] removeFromSuperview];
[tabBarController release];
[window addSubview:loginView.view];
}
И вот два метода в двух разных контроллерах представления:
- (IBAction)login:(id)sender {
TabNavisAppDelegate *delegate =
(TabNavisAppDelegate *) [[UIApplication sharedApplication] delegate];
[delegate loginComplete];
}
(метод выхода тот же)
Ребят, а как решить эту наболевшую проблему? Итак, вот список приложений, которые делают то, что я хочу: «Foursquare», «Brightkite» и другие. У каждого из них есть экран входа в систему, панель вкладок и кнопка выхода.
Спасибо @ all.