利用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)

            }

        }