目錄:[Swift]Xcode實際操做html
本文將演示多個Storyboard故事板中的頁面跳轉。swift
使用快捷鍵【Command】+【N】建立一個新的故事板文件。框架
(在項目文件夾【DemoApp】上點擊鼠標右鍵【New File】建立)編輯器
->【Storyboard】->【Next】->【Save As】:Storyboard.storyboardide
->保存默認的存儲位置點擊【Create】post
新添加的當前故事板中尚未添加視圖控制器,spa
點擊【庫圖標】,打開控件庫面板,code
在【View Controller】視圖控制器上雙擊,往故事板中插入第一個視圖控制器。htm
如今故事板中,已經擁有了一個視圖控制器,點擊視圖控制器下方的【模型尺寸列表】blog
在彈出的設備控制器列表中,選擇一個小型的設備,以調整故事板中的控制器的尺寸,
使故事板能夠在一屏範圍內,顯示更多的控制器。
點擊【庫圖標】,打開控件庫面板,
在【View Controller】視圖控制器上雙擊,往故事板中插入第二個視圖控制器。
點擊【顯示或隱藏檢查器】圖標,打開右側的檢查器面板。
點擊【身份檢查器圖標】進入身份檢查器面板。
【Storyboard ID】:servicePage,即輸入第二個視圖控制器在故事板中的標識。
將在下文中經過這個標識,得到該視圖控制器。
在故事版左側的文檔框架區域,選擇第一個視圖控制器。
點擊【屬性檢查器】圖標,打開屬性設置面板。
勾選【Is Initial View Controller】是否初始視圖控制器複選框。
設置第一個視圖控制器爲當前控制板的視圖控制器。
而後選擇視圖控制器中的根視圖,往根視圖中添加控件。
點擊【庫圖標】,打開控件庫面板,
在【Button】按鈕控件上雙擊,往根視圖插入一個按鈕控件。
在按鈕定界框的左側按下手指,以調整按鈕的寬度。
設置按鈕的標題文字,【Tile】下方輸入框:Back。
使用快捷鍵【Command】+【N】建立在故事版中,第一個視圖控制器對應的類文件。
(在項目文件夾【DemoApp】上點擊鼠標右鍵【New File】建立)
->【Cocoa Touch Class】->【Next】->
【Class】:ServiceViewController。輸入類名。
【Subclass of】:UIViewController,父類名稱
【Language】:Swift,類文件的默認語言
->【Next】->保存默認的存儲位置點擊【Create】
在項目導航區,打開並編輯上文建立的故事版文件【Storyboard.storyboard】
而後選擇第一個視圖控制器,給視圖控制器指定對應的類文件。
點擊身份檢查器圖標,進入身份檢查器面板。
【Class】:ServiceViewController,即輸入剛剛建立的類文件的名稱。
這樣故事板中的視圖控制器,就和類文件進行了綁定和鏈接。
點擊【顯示或隱藏輔助編輯器】圖標,打開輔助編輯器。
選擇控制器中的按鈕控件,須要將按鈕控件,與綁定的類文件的方法進行鏈接。
在按鈕上點擊鼠標右鍵,而後拖動到右側的代碼文件中。
(兩個方法:1.鼠標右鍵 2.【Command】+鼠標左鍵)
設置:
【Connection】:Action
【Name】:goBack
點擊【Connect】完成按鈕的鏈接設置。
在項目導航區,打開視圖控制器的代碼文件【ServiceViewController.swift】
1 import UIKit 2 3 class ServiceViewController: UIViewController { 4 5 @IBAction func goBack(_ sender: Any) { 6 //當用戶點擊按鈕時,導航控件將返回上一頁 7 self.navigationController?.popViewController(animated: true) 8 } 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 // Do any additional setup after loading the view. 13 } 14 }
點擊顯示標準編輯器按鈕,恢復默認的編輯器界面。
打開並查看主故事版【Main.storyboard】的內容。
視圖控制器中有三個跳轉按鈕,當用戶點擊不一樣的按鈕時,跳轉到不一樣的頁面。
在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】
編寫代碼,實現按鈕控件的鏈接方法。
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 //如今爲第二個按鈕添加點擊事件 6 @IBAction func gotoPage1OfStoryboard(_ sender: AnyObject) { 7 //從項目中,得到指定名稱的故事版文件 8 let storyBoard = UIStoryboard(name: "ServiceStoryboard", bundle: nil) 9 //得到故事板中的初始視圖控制器 10 let vc = storyBoard.instantiateInitialViewController() 11 12 //在當前的頁面中,跳轉到指定的視圖控制器 13 self.navigationController?.pushViewController(vc!, animated: true) 14 } 15 16 //如今爲第三個按鈕添加點擊事件 17 @IBAction func gotoPage2OfStoryboard(_ sender: AnyObject) { 18 //從項目中,得到指定名稱的故事版文件 19 let storyBoard = UIStoryboard(name: "ServiceStoryboard", bundle: nil) 20 //根據上文給視圖控制器設置的故事版標識,得到對應的故事版控制器 21 let vc = storyBoard.instantiateViewController(withIdentifier: "servicePage") 22 23 //在導航控制器中,從當前的頁面跳轉到指定的視圖控制器 24 self.navigationController?.pushViewController(vc, animated: true) 25 //在頁面進行跳轉的同時,隱藏底部的標籤欄 26 self.tabBarController?.tabBar.isHidden = true 27 } 28 29 override func viewDidLoad() { 30 super.viewDidLoad() 31 // Do any additional setup after loading the view, typically from a nib. 32 } 33 34 override func didReceiveMemoryWarning() { 35 super.didReceiveMemoryWarning() 36 // Dispose of any resources that can be recreated. 37 } 38 }