如何从iPhone应用程序注销并将其重新定向到登录页面?

如何从iPhone应用程序注销并将其重新定向到登录页面?,iphone,logging,uitabbarcontroller,logout,Iphone,Logging,Uitabbarcontroller,Logout,我正在开发一个tabBar应用程序,其中我将登录页面预设为modalviewcontroller。稍后从页面登录后,我将显示选项卡栏。在其中一个选项卡中,我有我的注销视图控制器,我想在其中注销并重新引导应用程序到登录页面。我需要删除所有加载的数据,然后在重新登录时使用输入的数据重新登录。我已经搜索了很多,但在这方面找不到任何帮助。有人能帮我实现这个功能吗?如果您将登录视图显示为modelview,那么没有问题。当用户成功注销时,您可以再次执行此操作。只需再次显示登录页面即可 但我的建议是,您应该

我正在开发一个tabBar应用程序,其中我将登录页面预设为modalviewcontroller。稍后从页面登录后,我将显示选项卡栏。在其中一个选项卡中,我有我的注销视图控制器,我想在其中注销并重新引导应用程序到登录页面。我需要删除所有加载的数据,然后在重新登录时使用输入的数据重新登录。我已经搜索了很多,但在这方面找不到任何帮助。有人能帮我实现这个功能吗?

如果您将登录视图显示为modelview,那么没有问题。当用户成功注销时,您可以再次执行此操作。只需再次显示登录页面即可

但我的建议是,您应该以应用程序的根视图登录,并签入应用程序委托,如果用户已登录,则请参阅您的应用程序主页,否则请参阅登录页面。在注销按钮上,jst弹出到登录视图控制器。哪个是根视图控制器

if([[DataModel sharedDataModel]getValueForKey:USER\u SESSION\u ID]!=nil) { objLoginController=[[LoginController alloc]initWithNibName:@“LoginController”捆绑包:nil]

    UINavigationController *temp=[[UINavigationController alloc] initWithRootViewController:objLoginController];
    self.mNavigationController=temp;

    [temp release];
    [objLoginController release];
    objLoginController = nil;


    if(objHomeController==nil)
    {
        objHomeController=[[HomeController alloc] initWithNibName:@"HomeController" bundle:nil];
    }

    [self.mNavigationController pushViewController:objHomeController animated:NO];

    [objHomeController release];
    objHomeController=nil;

    [mNavigationController setDelegate:self];
    mNavigationController.navigationBar.hidden=TRUE;
    [self.view addSubview:mNavigationController.view];
}
else
{
    objLoginController=[[LoginController alloc] initWithNibName:@"LoginController" bundle:nil];

    UINavigationController *temp=[[UINavigationController alloc] initWithRootViewController:objLoginController];
    self.mNavigationController=temp;

    [temp release];
    [objLoginController release];
    objLoginController = nil;

    [mNavigationController setDelegate:self];
    //mNavigationController.navigationBar.hidden=TRUE;
    //[mNavigationController setNavigationBarHidden:NO animated:YES];
    [self.view addSubview:self.mNavigationController.view];
}

如果我将我的登录页面设置为rootviewcontroller,那么如何显示我的tabbar控制器?在编辑的回答中,我hv jst发布了如何执行此操作的代码示例。您只需将您的登录凭据存储在NSUserdefaults中,并在ApplicationIDFinishLanching中获取它们。如果已登录use,则添加登录视图,然后将tabbar控制器添加到导航控制器在上面的代码中。主控制器是tabcontroller,logincontroller是login One实际上,我的应用程序是一个基于TabBar的应用程序,有4个选项卡(课程、课程、成绩、注销)。现在,我正在将所有4个视图控制器添加到AppDelegate类的一个选项卡中。self.tabBarController.viewControllers=[NSArray arrayWithObjects:\u myCoursesNavigationCtrlr、\u myProfileViewController、\u myGradeBookNavigationCtrlr、\u myLogoutNavigationCtrlr、nil];然后我再次将我的登录控制器预设为模式视图控制器[self.tabbar controller presentModalViewController:\u loginViewController动画:否];现在我对如何将登录添加为rootview控制器感到困惑。