Как «сбросить» панель вкладок в приложении iPhone

У меня есть приложение для 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.

8
задан Jon Limjap 3 December 2010 в 05:50
поделиться