2010-09-18 58 views
-1

为什么导航应用程序使用pushViewController而不是像所有其他应用程序一样使用presentModalViewController?如何修改导航应用程序以替代使用presentModalViewController?这样做会不是最理想的?为什么?pushViewController和导航应用程序?

+0

什么是downvote? – 2010-09-20 12:35:19

回答

1

导航视图控制器和模态视图控制器有不同的用途。第一个用于显示分层嵌套内容。虽然您要求更详细的项目信息,但您可以更深入地了解堆栈中更详细的视图。

模态视图用于在当前只显示一个视图。它适用于像你的应用程序的信息按钮的东西。

+0

我可以比使用模态视图的一个视图更深入。 – 2010-09-18 03:22:26

+0

但它并不意味着你应该 – 2010-09-19 00:23:53

+0

有没有理由你不应该? – 2010-09-20 08:06:53

1

你的问题有点像是问为什么UISplitViewControllers使用两个控制器并排列他们的观点。也就是,UINavigationControllers使用pushViewController:来管理他们的UIViewController实例栈,因为这是Apple如何决定UINavigationControllers应该如何工作。当动画进入视图时,推送的视图将从右侧滑入,当视图弹出时,旧视图从左侧滑入。

一个UIViewController的任何实例可以使用presentModalViewController于其中防止用户用下面的视图交互的方式在它自己的视图的顶部显示的另一个UIViewController的图。根据设备(iPhone,iPad)的不同,您可以选择新显示视图的视觉外观以及用于查看视频的动画。

没有什么能够阻止你编写一个应用程序,该应用程序只保留一个视图,使用presentModalViewController调出下一个视图,但没有理由使用UINavigationController这样做。我从来没有检查过内存消耗是否有意义的差异,也没有其他可以衡量的事情来判断从技术角度来看这样做是否“次优”,但这肯定不是标准,因此可能不是最优的用户体验视角。对于你的应用来说,这是否正确取决于用户是否认为交互对他们有意义。

0

导航视图控制器使用Stack.Your导航的概念是存储在堆栈,这就是为什么你可以把&弹出查看这表明你可以用它们的详细视图....制作的观点

层次

而模态视图控制器一次只显示一个视图......这通常用于应用程序中的新流程。