[英]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.