我有一个屏幕(我的个人资料),可以从两个路径访问:
在两个路径中,视图显示为:
[self.navigationController pushViewController...];
但我的问题是,在用户注册并完成其个人资料后,它应该“返回”内容视图。 (显然它不适用于导航控制器堆栈,因为内容不在导航控制器中)。
我的问题是,你有什么建议?
PS:我知道这不是一个实际的问题,但我现在已经考虑了几个小时,我没有想出任何东西。也许你们中的一些人不得不处理类似的案件。编辑:基本上这个问题可以概括为: 您如何处理循环申请流程?
编辑:我已经解决了这个问题,从Register到Content,然后在viewWillAppeare中没有动画的配置文件(所以我需要的是在堆栈中),但我仍然对处理循环应用程序流感兴趣。
答案 0 :(得分:2)
我的建议是改变[UINavigationController viewControllers]。
因此,在您结束注册后,您可以执行类似
的操作ContentVC *content = [[ContentVC alloc] init];
[self.navigationController setViewControllers:[NSArray arrayWithObject:content]];
[self.navigationController popToRootViewControllerAnimated:YES];
答案 1 :(得分:1)
在第二种情况下完成配置文件后推送内容视图控制器,而在第一种情况下,您已经推送它。
答案 2 :(得分:0)
1)使您的Login viewController成为UINavigationController的rootController。
2)从登录您可以推送内容ViewController
3)从Content VC,您可以推送到Profile VC。
现在,如果您想从个人资料中返回内容,请执行以下操作:
[self.navigationController popViewControllerAnimated:YES];
如果您想要从Profile直接返回登录,请执行以下操作:
[self.navigationController popToRootViewControllerAnimated:YES];
如果您不想使用导航栏,则可以隐藏栏。
<强>更新强>
采用与导航控制器堆栈不同的其他方法:
1)创建一个具有2个函数的控制器类:
-(void)loadViewControllerWithIndex:(int)index;
和
-(void)unLoadCurentViewController;
2)您可以调用这些函数并从此控制器类加载和卸载视图控制器。
3)因此,您最初在此类其他视图控制器中加载此类并导入文件。您可以使用UIViewController对象topViewController,这样您就可以跟踪当前显示哪个控制器,当您想要卸载控制器时它将有所帮助。
4)在带索引功能的负载控制器中,您可以添加控制器视图,在卸载时可以将其删除。