在基于导航的iPhone应用程序中转换为未知类型的视图

时间:2009-10-28 00:43:55

标签: iphone uiviewcontroller uinavigationcontroller

在我的iPhone应用程序中,用户从 UITableView 中选择一个项目以选择要查看的资源。在检索资源之前,不知道处理资源所需的 UIViewController 子类,这可能需要几秒钟。

为了响应选择操作,我在导航堆栈上按下“加载”视图控制器。该控制器提供带有 UIActivityIndi​​catorView 的视图以及(可能)其他状态信息,并启动所选资源的下载。从该视图,用户可能取消下载,在这种情况下,我将返回资源列表。但是,如果资源到达,则会根据其类型创建适当的新视图控制器。

这是粘性的地方。如果我在导航堆栈上推送新的特定于类型的视图,则“加载”视图仍在堆栈中;显然,一旦加载完成,就没有必要“回到”那个视图。我试过简单地添加特定于类型的视图作为“加载”视图的子视图,但这不会将我的特定于类型的控制器放到导航堆栈上,因此它没有 [self navigationController] ] 进一步导航。

如何用新的方式“替换”导航堆栈上的当前视图?或者,更一般地说,当我还不知道将使用哪个控制器来显示正在检索的资源时,如何显示活动/进度?

我找到了很酷的“HUD”进度指示器类,但我不希望进度指示出现在所选项目列表的顶部。相反,我希望用户认识到他们“已经”去了一个等待填补的新空间。

我对这些东西很陌生,所以我希望我至少能够连贯地提出这个问题。感谢任何人提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

更新:实际上,将“加载”视图显示为模态视图可能会更好。有关示例,请查看此question

一旦下载并分配后者,您应该pop“加载”视图控制器和push“特定”视图控制器。不要动画这些动作中的一个或两个动画,以查看最佳体验。