ios场景间导航Segue


场景间导航的另外一个名字,这是Segue这是一张来自于官网的图片,在StoryBoard中,我们清晰的看到下图点击Button之后会跳转到第二个场景, 两个场景中间有一条线连接,这样的方式使我们将场景间的切换了解的一目了然。


segue1.png


在相连的线段上,每一个图标有不同的含义。


segue2.png


不同导航动作意味着场景间不同的切换。


segue3.png



导航栈的介绍


在窗口切换当中,由导航控制器(Navigation Controller)控制,窗口会被导航控制器压入到导航栈中,我们知道栈的特性:先入后出。当一个父窗口中被点击某些控件之后,子窗口出现在父窗口之上。其实父窗口被压入栈中,当子窗口消失之后,父窗口被弹出栈并显示。


导航栈是将导航控制器压入栈中来对窗口进行操作。


上面已经提到过,窗口切换有许多的方法,而导航栈的使用不是必须的,比如Model方法和Popover方法就不需要。我们可以想象Model是一个模态的窗体,一般我们在弹出警告或者提醒的时候会使用它,它的存在只有在点击之后关闭模态窗口,父窗口才可以操作。但是在它弹出的时候父窗口并没有消失,只是变得不可以操作,所以此时不需要将父窗口压栈。


segue4.png


下面的图显示了导航控制器的流程。最左侧是根视图,当用户点击其中的General项时 ,General视图会滑入屏幕;当用户继续点击Auto-Lock项时,Auto-Lock视图将滑入屏幕。相应地,在对象管理上,导航控制器使用了导航堆栈。根视图控制器在堆栈最底层,接下来入栈的是General视图控制器和Auto-Lock视图控制器。


segue5.png


选中左侧窗口的按钮Go,按住左键拖拉至右边窗口后松开,就会出现如下菜单。


segue6.png


除了上述拖拽法以外,还可以通过添加代码修改场景间导航,为按钮建立Actions,下面就是相应代码,这儿只是简略的提及,后面会完整的演示到。


segue7.png


为根窗体添加导航控制器,先选中窗体控件,再在菜单中进行添加导航控制器。


segue8.png


第一个界面为导航控制器,导航控制器没有界面,只是起控制场景的作用。


segue9.png


下面是两个界面之间的切换,Back为导航控制器为我们创建的返回按钮。


segue90.png



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127

免费领取价值1888元求职宝典!

客服热线 400-862-8862

回到顶部