Benefits from using UiNavigationController
我正在开发一个已经为Android开发的iOS应用程序。
问题是,考虑到应用程序页面的以下方案,我不知道如何组织uiviewcontrollers:
这个方案很简单:有一个登录页面指向主页面。从这个主页面上,有四个按钮,它们都指向一个特定的视图层次结构,但是在每个按钮的最底部,用户可以直接返回主页面。主页面访问的每个页面也将有一个自定义后退按钮(我自己的图像)
问题是:在我的例子中,使用
In 'push' segue, you are basically pushing your ViewController into an
already setup"navigation stack". Well, of course, this is under the
assumption that the ViewController that performs the 'pushing'
operation belongs to the same navigation stack as the ViewController
is pushed into. Generally, you push a ViewController if the pushed
ViewController has some sort of a relationship with the pushing
ViewController. This is very common in applications that has a
NavigationController in its system. A good example for a push segue is
a system where you are displaying a list of contacts. And on tap of a
particular contact, you are pushing a VC that has the corresponding
details of the contact.
例如现实世界:产品列表=>产品详细信息=>产品评论
In 'modal' segue, there is no stack as such. You are presenting a VC
'modally' over the presentee VC, if that makes sense. This can happen
across any ViewController without any relationship rules. The
presenter should take care of dismissing the VC it presented. A good
example for modal segue is login. On tap of login, you are modally
presenting a VC that has no relationship with the presenter.
故事板(xcode):推送和模态segue有什么区别?
决定是否使用模态segue与show(push)完全取决于用户体验的目的和上下文。如果您引导用户沿着一条线性路径前进,在该路径中,每个连续的vc都深入到一个奇异的想法中,那么使用show segues和navigationcontrollers。例如,设置应用程序,您可以在其中钻取所有细节。大多数电子商务应用程序将使用导航控制器引导用户完成购买。
如果你想向用户展示一个用户可以响应的单一概念,或者关闭它继续使用应用程序的其余部分。然后使用模态表示。在iPhone中添加联系人就是一个很好的例子。
从视觉上看,不同之处在于ShowSegue从应用程序的右侧显示了VC,滑到了前一个VC上。(如果用户打开了阿拉伯语,从右到左的语言,显示segue将来自vc的左侧)模式来自应用程序的底部。
从你的图纸来看,但对你的应用程序一无所知,我认为你想使用导航控制器。您也可以考虑使用TabbarController。如果这些按钮中的每一个都引导用户使用应用程序的各种方式,比如在一个大的应用程序中使用迷你应用程序,那么TabbarController是合适的。
我想说,如果主"主"视图控制器中的每个附加视图控制器没有任何子视图控制器,那么您可以只让每个按钮以模态方式显示视图控制器。
主要的区别是,如果您使用导航控制器,您可以将一个VC"推"到视图控制器的导航堆栈上,而以形式呈现它可以被认为是一个"一次性"操作,其中用户在新屏幕上做一些事情,并且没有逻辑前进的地方(如向新联系人添加信息)。
你可以看到这篇文章来获得更详细的答案:
在故事板中,莫代尔和普什塞格有什么区别?