[Swift-d14] - Basic - Navigation View 2 + ViewController
延續昨天的主題,今天我們要做的事情是:
- 爲新的 ViewController 實際加入程式碼 (ViewController2.swift)
- 加入一個 button 來控制是否前進下一頁或後退
我們先新增一個檔案:
接著選擇 CocoaTouch Class:
回到 storyboard, 選擇第二個 ViewController
並按照下圖,將 Class 指定給 View2Controller
這樣子 storyboard 的 View2 就會指定到 View2Controller 了
我們在 View2Controller 的 viewDidLoad 方法中加入一行程式碼
來驗證他是否有吃到 View2Controller
self.title = "View2 by me"
Run 起來看的話就會是這樣:
的確是有吃到程式碼的
再來就是要加入按鈕了:
我們先拉一個 Button 進 View2Controller
並且將該 Button 拉進 View2Controller 的 code
設定該 button 爲 Action, 並且名稱是 ‘backToView’
意即我們要讓點下 View2Controller 的 Button 行為為回到上一個 View
另外對 View2 為他加入一個 storyboard ID, View2,等等會用到:
View1 同樣也加入一個 Button, 並且也是拉到 View1 的 code 中,
同樣是設定 Action ,action name 定義為 ‘goView2’
就是按下 button 後會到 View2
接著我們分別在 ViewController 及 View2Controller 的程式碼中加入以下程式碼:
View1 -
@IBAction func goView2(sender: AnyObject){
self.navigationController?.pushViewController(self.storyboard?.instantiateViewControllerWithIdentifier("View2") as View2Controller, animated: true)
}
View2 -
@IBAction func backToView(sender: AnyObject) {
self.navigationController?.popViewControllerAnimated(true)
}
在這邊 Navigation 用到的是 Push, Pop 的概念,使用 View stack
進到下一個 View 時,就 push 欲前往的 View
回到上一個 View 時,就 pop 出上一個 View
在 goView2 中,我們使用到了 storyboard 的 identifier
先讓 storyboard 抓有沒有 identifier 名為 “View2” 的物件
有的話就抓起來,並且使用 as 轉型成 View2Controller, push 進 stack
做完上述事情後,執行程式碼就可以看到結果囉!