2

我面临一个小问题:

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

(1) 飞溅视图 --> 我已登录?--> (3) 主页视图 | else (2) 登录视图

因此,当我登录时,我会转到主页视图。当我注销时,我可以放松到登录视图,因为我来自它。

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

有人知道这方面的解决方案吗?

4

3 回答 3

1

我只是把我的逻辑放在这里:在您的应用程序中
获取/添加一个视图控制器,例如。在方法中放逻辑就像DummyViewControllerrootViewControllerDummyViewController'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]; 

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

于 2014-04-30T08:32:56.787 回答
0

您可以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;
    }
}
于 2014-04-30T08:29:37.223 回答
0

也许这样做有点笨拙,但是您可以简单地始终加载登录视图并将“我已登录?”委托给它。查看。您可以隐藏或使用等待标志或其他方式加载它...这样您在注销时就已经加载了它。

如果没有看到您的代码,我无法向您展示如何操作,但我想逻辑就足够了。

于 2014-04-30T08:30:13.277 回答