我有一个 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”等等。每个都有一个登录屏幕、一个标签栏视图和一个注销按钮。
谢谢大家。