2

我有一个屏幕(我的个人资料),可以从两个路径访问:

  • 登录 -> 内容 -> 个人资料
  • 登录 -> 注册 -> 个人资料。

在这两个路径中,视图都显示为:

 [self.navigationController pushViewController...];

但我的问题是,在用户注册并完成他的个人资料后,它应该“返回”到内容视图。(显然它不适用于导航控制器堆栈,因为 Content 不在导航控制器中)。

我的问题是,你有什么建议?

PS:我知道这不是一个实际的问题,但我已经考虑了几个小时,但我没有想出任何问题。也许你们中的一些人不得不处理类似的情况。

编辑:基本上这个问题可以概括为: 你如何处理循环应用程序流?

编辑:我已经解决了这个问题,方法是从 Register 推送到 Content,然后在 viewWillAppeare 中的 Profile 没有动画(所以我需要的是在堆栈中),但我仍然对处理循环应用程序流感兴趣。

4

3 回答 3

2

我的建议是更改 [UINavigationController viewControllers]。

因此,在您结束注册后,您可以执行类似的操作

ContentVC *content = [[ContentVC alloc] init];
[self.navigationController setViewControllers:[NSArray arrayWithObject:content]];
[self.navigationController popToRootViewControllerAnimated:YES];
于 2013-10-10T12:33:54.750 回答
1

在第二种情况下,在配置文件编译后推送 Contentview 控制器,而在第一种情况下,您已经推送它。

于 2013-10-10T12:38:30.307 回答
0

1)使您的登录视图控制器成为 UINavigationController 的根控制器。

2)从登录你可以推送内容视图控制器

3)您可以从 Content VC 推送到 Profile VC。

现在,如果您想从个人资料返回内容,请执行以下操作:

[self.navigationController popViewControllerAnimated:YES];

如果您想直接从个人资料返回登录,请执行以下操作:

[self.navigationController popToRootViewControllerAnimated:YES];

如果您不想要导航栏,您可以隐藏该栏。

更新

采取不同的方法,而不是导航控制器堆栈:

1)制作一个具有2个功能的控制器类:

-(void)loadViewControllerWithIndex:(int)index;

-(void)unLoadCurentViewController;

2)您可以调用这些函数并从这个控制器类加载和卸载视图控制器。

3)所以你最初加载这个类并在其他视图控制器的这个类中导入文件。您可以使用 UIViewController 对象 topViewController,这样您就可以跟踪当前显示的控制器,并且在您想要卸载控制器时会有所帮助。

4)在具有索引功能的加载控制器中,您可以添加控制器视图,在卸载时您可以删除它们。

于 2013-10-10T12:14:58.703 回答