繁体   English   中英

iOS展开查看未加载

[英]iOS unwind to view not loaded

我面临一个小问题:

启动应用程序时,我有类似的东西:

(1)启动画面->我已登录? ->(3)HomeView | 其他(2)登录视图

因此,当我登录时,然后转到主视图。 当我注销时,我可以退出登录视图,因为我来自登录视图。

但是,如果我不从登录视图传递而直接重定向到主视图,则注销时无法展开到登录视图。

有人知道解决方案吗?

我只是把我的逻辑放在这里:
采取/添加一个诸如DummyViewController之类的DummyViewController作为应用程序的rootViewController DummyViewController's viewWillAppear方法中,将逻辑像

- (void)viewWillAppear:(BOOL)animated 
{
    [super viewWillAppear:animated];

    if(login == YES)
    {
       //go to home screen
    }
    else
    {
      // go to login screen
    }
}

DummyViewController您不再需要在viewWillAppear编写代码。 如果要注销 ,请致电

[self.navigationController popToRootViewControllerAnimated:YES]; 

DummyViewController viewWillAppear方法将根据登录状态管理您的屏幕。

注销完成后,可以使用NSNotificationCenter通知您的根类。 然后弹出到您的rootViewController

如果您使用的是UINavigationController,只需将您的登录控制器显示在NavigationController's RootViewController ,如下所示

-(void)logoutNotification
{
logout = YES;
}

-(void)viewDidAppear:(BOOL)animated
{
    if (logout)
    {        
        AuthController * auth = [[AuthController alloc] init];

        [self presentViewController:auth animated:NO completion:^{

        }];

        logout = NO;

        auth = nil;
    }
}

也许这样做有点虚构,但是您可以始终加载登录视图并将其委托给“我已登录?”。 校验。 您可以隐藏地加载它,也可以等待符号加载它...这样,注销时就已经加载了它。

没有看到您的代码,我无法告诉您如何做,但是我认为逻辑就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM