我面临一个小问题:
启动应用程序时我有类似的东西:
(1) 飞溅视图 --> 我已登录?--> (3) 主页视图 | else (2) 登录视图
因此,当我登录时,我会转到主页视图。当我注销时,我可以放松到登录视图,因为我来自它。
但是,如果我不从登录视图传递并直接重定向到主视图,则注销时我无法放松到登录视图。
有人知道这方面的解决方案吗?
我面临一个小问题:
启动应用程序时我有类似的东西:
(1) 飞溅视图 --> 我已登录?--> (3) 主页视图 | else (2) 登录视图
因此,当我登录时,我会转到主页视图。当我注销时,我可以放松到登录视图,因为我来自它。
但是,如果我不从登录视图传递并直接重定向到主视图,则注销时我无法放松到登录视图。
有人知道这方面的解决方案吗?
我只是把我的逻辑放在这里:在您的应用程序中
获取/添加一个视图控制器,例如。在方法中放逻辑就像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];
并且viewWillAppear
方法DummyViewController
将根据登录状态管理您的屏幕。
您可以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;
}
}
也许这样做有点笨拙,但是您可以简单地始终加载登录视图并将“我已登录?”委托给它。查看。您可以隐藏或使用等待标志或其他方式加载它...这样您在注销时就已经加载了它。
如果没有看到您的代码,我无法向您展示如何操作,但我想逻辑就足够了。