通過segue實(shí)現(xiàn)Storyboard回調(diào)傳值

最近一段時(shí)間在學(xué)習(xí)如何使用Storyboard,因?yàn)橹耙恢笔鞘褂眉兇a來寫,所以在使用Storyboard的時(shí)候碰到了一些問題。

今天我想實(shí)現(xiàn)如何從第二個(gè)控制器?返回到第一個(gè)控制器的時(shí)候如何回調(diào)傳值。大家都知道在OC中回調(diào)常用的兩種方法:一種是通過代理,另一種是通過block,而在Swift中也是同樣的兩種方法,只是block在Swift中換了另外一種叫法closure。但是使用Storyboard本來就想盡可能少得寫代碼,所以通過查閱一些資料找到了另一種回調(diào)方式,通過segue來進(jìn)行回調(diào) 傳值。

首先我們創(chuàng)建一個(gè)工程,然后添加一個(gè)SecondViewController文件:

Paste_Image.png

在Main.storyboard里面原來有一個(gè)UIViewController繼承自ViewController,我們再拖進(jìn)來一個(gè)UIViewController并繼承自SecondViewController:

Paste_Image.png

然后我們給第一個(gè)ViewController里面添加一個(gè)UILabel來接收回調(diào)值和一個(gè)UIButton來跳轉(zhuǎn)到第二個(gè)頁面,給第二個(gè)ViewController添加一個(gè)UITextField里面是需要回調(diào)的值和一個(gè)UIButton來返回上一個(gè)界面:

Paste_Image.png

在ViewController添加一個(gè)getSegue方法:

@IBAction func getSegue(segue : UIStoryboardSegue){
 }

這時(shí)候你會發(fā)現(xiàn)再secondViewController的exit上多了一個(gè)方法,然后將這個(gè)方法與返回的button進(jìn)行關(guān)聯(lián)

Paste_Image.png

左邊會出現(xiàn)一個(gè)Unwind segue,然后給這個(gè)segue設(shè)置identifier:

Paste_Image.png

給secondViewController里面的btn添加一個(gè)backTo的方法:

    @IBAction func backTo(_ sender: AnyObject) {
        performSegue(withIdentifier: "passValue", sender: nil)
    }

在ViewController里面getSegue方法添加獲取回調(diào)的方法:

     @IBAction func getSegue(segue : UIStoryboardSegue){
            if segue.identifier == "passValue"{
              self.titleLabel.text = (segue.source as!       SecondViewController).textField.text
            }
      }

這下就完成了所有的回調(diào)操作,可以從secondView里回調(diào)到前一個(gè)ViewController的label里面。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容