前文有提到過用Storyboard控制APP從一頁跳到另一頁非常簡單,
只需要按著Control將滑鼠由Button拖動到需要前往的頁面就可以了,
成功後兩個頁面之間就會出現一條連接線(如下圖)。
那Swift到底是用什麼去記錄這條路線的呢?
這時就需要了解Segue了,
簡單來說,Segue就代表中間的那條路線。
雙Click Segue查看它的Identifier會是空的,
此時你就可以任意取名,某君簡單地將之命名為Page_1,
這樣就可以在Code中呼叫這個Segue啦。
那Segue具體是怎樣用的呢?
假設APP本來是這樣的:
如果想在傳輸過程中就把一些資料率先傳送給下一頁,例如:
此時就可以用到prepare函數,
由於是在前一頁就將資料傳到下一頁,
所以prepare應寫在前一頁中,
在某君這裡就是ViewController.swift,
[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:
[結果]
更可加入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的文字傳送去其他頁面,
都是一樣的方式,可以動手試試哦。
留言列表