从打造新闻app学到的(4):使用Segue在ViewController之间传递数据

要实现不同界面的跳转,简单的办法是在StroyBoard中直接拖动控件。按住^将触发跳转的控件拖到待触发的View中,松开鼠标在弹出的菜单中选择对应的选项(跳转为View),一个segue(大致译为“转场、过渡”)就完成了:

而要实现在两个ViewController之间传数据,在这种建立segue的情况下也很简单。假设我们需要在从ViewA(ControllerA代理)跳转去ViewB(ControllerB代理)时传递一个Int变量id,那么先要在ControllerB中定义.id属性,然后在ControllerA中实现:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
//print(“this is segue \(segue.identifier), \(sender.debugDescription)")
ControllerB.id = passValue
}

这样的方式适合参数比较少或者已经打包的情况,缺点是必须将待传递的参数在ControllerB中暴露出来。