¿Cómo puedo "restablecer" la barra de pestañas en una aplicación de iPhone

Tengo una aplicación para iPhone: cuando abres la aplicación, ves "LoginView". Si inicia sesión en la aplicación, verá un TabBarController. En la tercera y última pestaña hay un botón "Cerrar sesión". Si hace clic, verá "LoginView" nuevamente. Mi problema es que si vuelve a iniciar sesión verá la barra de pestañas "antigua" y la pestaña seleccionada es la tercera y no la única, y hay un botón de "Cerrar sesión". Además, si un usuario inicia sesión con un usuario diferente, vea los datos antiguos del usuario anterior (muy peligroso).

Aquí está el código: - 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 (métodos):

- (void)loginComplete {
    [loginView dismissModalViewControllerAnimated:YES];
    [window addSubview:tabBarController.view];
}

- (void)logoutComplete {
    [[tabBarController view] removeFromSuperview];
    [tabBarController release];
    [window addSubview:loginView.view];
}

Y aquí están los dos métodos en dos controladores de vista diferentes:

- (IBAction)login:(id)sender {

     TabNavisAppDelegate *delegate =
      (TabNavisAppDelegate *) [[UIApplication sharedApplication] delegate];
  [delegate loginComplete];
  }

(el método de cierre de sesión es el mismo)

Chicos, ¿cómo puedo resolver este doloroso problema? Entonces, aquí hay una lista de aplicaciones que hacen lo que quiero: "Foursquare", "Brightkite" y otros. Cada uno tiene una pantalla de inicio de sesión, una vista de barra de pestañas y un botón para cerrar sesión.

Gracias a todos.

Respuestas a la pregunta(4)

Su respuesta a la pregunta