利用Segue进行转场传值
1.1正向跳转
segue正向转场是prepareForSegue
在源VC中->NavigationViewController在Segue的属性中选择show(Xcode7.2没有show detail),会有返场btn,将VC push进下一个场景。
step1:源VC中用prepareForSegue进行设置,在方法中确定目的VC
step2:然后对目的VC中的属性进行赋值或传递方法。
1.1.1实现代码
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
//指定转场传送
if segue.identifier == "传送identifier"{
//传值指令;destinationViewController as! DetailViewController代表self传值到DetailViewController(被传送vc)
let detailVC = segue.destinationViewController as! DetailViewController
//传值数据
detailVC.tst = tsts[(tableView.indexPathForSelectedRow?.row)!]
}
1.2反向转场
模态展现(modal)的视图系统不提供返回按钮。我们需要定义一个反向转场,可以用模态视图退场。
在目的视图定义这个函数(返回vc)
@IBAction func close(segue:UIStoryboardSegue){
里面放传递的数据
}
在源VC中按control拖btn到exit,选择close。
反向转场用performSegueWithIdentifier.
btn拖到exit->出口执行目的地VC中的自定义函数
@IBAction func close(segue:UIStoryboardSegue)
{
let sourceVC = segue.sourceViewController as 源VC
(获取sourceVC中的对象或者数据后在destVC中进行处理)
}
step1:定义反向转场,并且实现退场连接(在返回场景中实现返回方法)返回vc
step2:然后对源VC中的属性进行取值和传递方法。
step3: 对源VC返回键实现传值反向转场performSegueWithIdentifier
1.2.1实现代码
step1.2
@IBAction func close(segue:UIStoryboardSegue){ if let souVS = segue.sourceViewController as? ReviewViewController{ if let ranting = souVS.rating{ self.restaurant.rating = ranting self.UIranting.setImage(UIImage(named: ranting1 ), forState: .Normal) } }