¿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.