我创建了一个基于标签栏的项目,并在标签视图之前添加了一个登录视图。
AppDelgate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
loginView = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
loginView.delegate = self;
[window addSubview:loginView.view];
[self.window makeKeyAndVisible];
return YES;
}
-(void) loginViewControllerDidFinish:(LoginViewController *) loginViewController{
[window addSubview:tabBarController.view];
}
我正在调用loginViewControllerDidFinish:在LoginViewController中进行身份验证后
[self.delegate loginViewControllerDidFinish:self];
现在,在其中一个标签中,我添加了退出按钮,并希望在触摸时返回loginView。
-(IBAction) logout:(id)sender{
NMSAppDelegate *appDelegate = (NMSAppDelegate *)[[UIApplication sharedApplication] delegate];
//[appDelegate.tabBarController release];
[appDelegate.tabBarController.view removeFromSuperview];
}
它在调用上面的方法后显示了loginView,但是在重新登录之后它显示了所有以前的数据和之前选择的选项卡,但是我希望它从第一个选项卡重新显示。无论如何都要在注销时完全删除标签栏。所以我开始新的会议。
由于
答案 0 :(得分:0)
你不能创建另一个appDelegate.tabBarController实例吗?
这样的事情:
appDelegate.tabBarController = [[UITabBarController alloc] init];
appDelegate.tabBarController.viewControllers = [NSArray arrayWithObject:VIEW_CONTROLLER1, VIEW_CONTROLLER2,nil];
appDelegate.window.rootViewController = tabBarController;
[appDelegate.window makeKeyAndVisible];