close

前文有提到過用Storyboard控制APP從一頁跳到另一頁非常簡單,

只需要按著Control將滑鼠由Button拖動到需要前往的頁面就可以了,

成功後兩個頁面之間就會出現一條連接線(如下圖)。

image

那Swift到底是用什麼去記錄這條路線的呢?

這時就需要了解Segue了,

簡單來說,Segue就代表中間的那條路線。

雙Click Segue查看它的Identifier會是空的,

此時你就可以任意取名,某君簡單地將之命名為Page_1,

這樣就可以在Code中呼叫這個Segue啦。

image

那Segue具體是怎樣用的呢?

假設APP本來是這樣的:

如果想在傳輸過程中就把一些資料率先傳送給下一頁,例如:

此時就可以用到prepare函數,

image

由於是在前一頁就將資料傳到下一頁,

所以prepare應寫在前一頁中,

在某君這裡就是ViewController.swift,

image

[ViewController.swift]

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        let reachVC=segue.destination as? Page1ViewController

            // 將Segue目的地為第一頁的View Controller以reachVC來代稱

        reachVC?.labelValue=segue.identifier!

            //將segue的identifier(即Page_1)賦值給第一頁的中labelValue,記得要先在第一頁中宣告

    }

並在[Page1ViewController.swift]中將值賦予Label:

image

[結果]

更可加入Segue的Identifier來判定是去哪一個頁面:

[ViewController.swift]

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        if segue.identifier=="Page_1" {

            let reachVC=segue.destination as? Page1ViewController

            reachVC?.labelValue="Click " + segue.identifier!

        }else if segue.identifier=="Page_2" {

            let reachVC=segue.destination as? Page2ViewController

            reachVC?.labelValue="Click " + segue.identifier!

        }

}

[結果]

 

如果需要將Text啊、Label的文字傳送去其他頁面,

都是一樣的方式,可以動手試試哦。

 

arrow
arrow

    4ngus 發表在 痞客邦 留言(0) 人氣()