2012-03-16 45 views
0

在构建我的应用程序(基于选项卡的应用程序)时,用户可以从第一个选项卡查看其配置文件信息(特定于应用程序)。于是纷纷设立UINavigationController有以下视图控制器:在UINavigationController Stack中显示特定视图

1 - Edit profile 
0 - View profile (also the root view controller for the `UINavigationController`). 

我想实现的是,如果个人资料尚未建立(即第一次运行应用程序),我想直接去流编辑配置文件视图,它现在是默认行为,因为该视图位于堆栈的顶部。

我遇到的问题是,如果配置文件已设置,我将如何直接进入查看配置文件。我查看了UINavgationController的文档,并且不清楚如何将视图控制器弹出堆栈。方法popToViewController:animated返回从堆栈弹出的项目的NSArray。这是否意味着这些视图控制器不再可用,和/或是否有更好的方法直接进入我想要的视图控制器?

+0

在你的问题中有一些令人困惑的问题。你说“基于标签”(UITabBarController),但你正在谈论导航(UINavigationController)。如果使用UINav ...,则将EditProfileController推入堆栈,完成后,将其弹出并更新ViewProfileController。 – Canopus 2012-03-16 20:40:33

+0

@Canopus整个应用程序是基于标签的,但操纵用户帐户的部分通过一系列屏幕导航,非常像Twitter或Fourquare。 – 2012-03-16 20:48:57

+0

假设配置文件是您的选项卡之一,默认情况下它会显示ViewProfileController,并且您知道层级结构中的下一个视图是EditProfileController,它位于-viewDidLoad上,如果是第一次,请将EditProfileController推入堆栈。是的,“...视图控制器不再可用”。就个人而言,不是没有其他方式 - 我没有看到这种方法有任何问题。 – Canopus 2012-03-16 20:53:12

回答

0

如果您在导航控制器中只有两个视图,并且View是根视图控制器,则可以确保通过在选项卡上选择该选项卡之前或之后立即运行popToRootViewControllerAnimated:来显示该视图酒吧控制器。

如果您遇到了要编辑显示的情况,请使用编辑视图控制器运行popToRootViewControllerAnimated:后跟pushViewController:animated:

当您想弹出时,您可以使用popViewControllerAnimated:而不是popToViewController:animated。 (你在这个导航控制器中只有两个视图控制器,所以它只有一个会弹出。)

这似乎很简单,除非我误解了你的问题。

大多数程序都不需要从popToViewController:animated返回的视图控制器数组。我自己并没有真正发现需要使用这种方法,正如我所说,它看起来并不像你在这里需要它。

+0

谢谢,你完全理解。我主要关心的是完全从导航控制器中删除的视图。 – 2012-03-16 20:56:07

相关问题