2014-10-10 00:00

[Swift-d14] - Basic - Navigation View 2 + ViewController

延續昨天的主題,今天我們要做的事情是:

  1. 爲新的 ViewController 實際加入程式碼 (ViewController2.swift)
  2. 加入一個 button 來控制是否前進下一頁或後退

我們先新增一個檔案:

image

接著選擇 CocoaTouch Class:

image

image

回到 storyboard, 選擇第二個 ViewController

並按照下圖,將 Class 指定給 View2Controller

image

這樣子 storyboard 的 View2 就會指定到 View2Controller 了

我們在 View2Controller 的 viewDidLoad 方法中加入一行程式碼

來驗證他是否有吃到 View2Controller

self.title = "View2 by me"

Run 起來看的話就會是這樣:

image

的確是有吃到程式碼的

再來就是要加入按鈕了:

我們先拉一個 Button 進 View2Controller

並且將該 Button 拉進 View2Controller 的 code

image

設定該 button 爲 Action, 並且名稱是 ‘backToView’

意即我們要讓點下 View2Controller 的 Button 行為為回到上一個 View

image

另外對 View2 為他加入一個 storyboard ID, View2,等等會用到:

image

View1 同樣也加入一個 Button, 並且也是拉到 View1 的 code 中,

同樣是設定 Action ,action name 定義為 ‘goView2’

就是按下 button 後會到 View2

image

接著我們分別在 ViewController 及 View2Controller 的程式碼中加入以下程式碼:

View1 -

image

@IBAction func goView2(sender: AnyObject){
self.navigationController?.pushViewController(self.storyboard?.instantiateViewControllerWithIdentifier("View2") as View2Controller, animated: true)
}

View2 -

image

@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

做完上述事情後,執行程式碼就可以看到結果囉!

Share

comments powered by Disqus