ios在按钮触摸时删除tabbar

时间:2012-03-08 12:00:42

标签: objective-c ios uitabbarcontroller

我创建了一个基于标签栏的项目,并在标签视图之前添加了一个登录视图。

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,但是在重新登录之后它显示了所有以前的数据和之前选择的选项卡,但是我希望它从第一个选项卡重新显示。无论如何都要在注销时完全删除标签栏。所以我开始新的会议。

由于

1 个答案:

答案 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];