Ios 从选项卡栏控制器注销到根视图控制器

Ios 从选项卡栏控制器注销到根视图控制器,ios,uiviewcontroller,uitabbarcontroller,Ios,Uiviewcontroller,Uitabbarcontroller,当应用程序启动时,我在验证字段后放置了一个视图控制器(登录),该字段被重定向到选项卡栏控制器。问题是我必须放置注销按钮,当单击注销按钮时,它应该转到根视图控制器(登录页面)。我尝试过从选项卡栏控制器推到根视图控制器,它被推,但在继续进行时仍然面临一些选项卡栏问题。如何从选项卡栏项弹出/推送到根视图控制器?可能是您可以将UINavigationController用于根视图控制器 这里有一些关于自定义后退按钮的示例。如果您想使用默认的后退按钮,您可以将其重命名为注销并对其进行操作 这只是一个想法。

当应用程序启动时,我在验证字段后放置了一个视图控制器(登录),该字段被重定向到选项卡栏控制器。问题是我必须放置注销按钮,当单击注销按钮时,它应该转到根视图控制器(登录页面)。我尝试过从选项卡栏控制器推到根视图控制器,它被推,但在继续进行时仍然面临一些选项卡栏问题。如何从选项卡栏项弹出/推送到根视图控制器?

可能是您可以将UINavigationController用于根视图控制器

这里有一些关于自定义后退按钮的示例。如果您想使用默认的后退按钮,您可以将其重命名为注销并对其进行操作


这只是一个想法。

我可以想象,在AppDelegate.m中,您创建了一个导航控制器,使用LoginUI控件作为RootViewController

您可以这样解决问题:

例如,您的TabBarController中有一个第一个TabUIViewController,您希望从第一个TabUIViewController返回到您的LoginUIViewController(您的RootViewController)

  • 在第一个tabuiviewcontroller.h和.m中创建对TabBarController的引用

    @属性(强,非原子)IBUITABBARCONTROLLER*tabBarController

    @合成tabBarController=\u tabBarController

  • 创建一个方法来处理“注销”按钮单击in.m

    -(iAction)LogoutB标记:(UIBarButtonItem*)发送方{

    [self.tabBarController.navigationController PoptorootViewController激活:是]

    }


  • 是的!希望对您有所帮助:)

    单击注销按钮时,只需再次将登录屏幕置于appdelegate窗口中即可

    LoginViewController *loginVC = [[LoginViewController alloc]init]; 
    AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
    [appDelegate.window setRootViewController:loginVC];// This will initiate the login screen again
    

    在同样的情况下,这对我来说很好

    ChooseStateViewController *loginVC = [[ChooseStateViewController alloc]initWithNibName:@"ChooseStateViewController" bundle:nil]; 
    
    UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:loginVC];
    [nc.navigationBar setTintColor:[UIColor blackColor]];
    AppDelegate *appDelegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
    [appDelegate.window setRootViewController:nc];
    

    选中此项并添加didLogoutFinished:Method您找到答案了吗