iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
0
自我挑戰組

Hello Swift系列 第 17

17/30 轉來轉去的Segues-2

  • 分享至 

  • xImage
  •  

(承16/30 轉來轉去的Segues-1)

關於你的名字...和storyboard ID。
https://ithelp.ithome.com.tw/upload/images/20191002/201200885G7cJkea87.jpg

storyboard ID就是View在storyboard上的識別碼
程式碼的形狀為(withIdentifier: "...")

navigationController?.popToRootViewController(animated: true)

ViewController.swift
按下button(Go to View 2)執行的方法:

@IBAction func gotoView2(_ sender: UIButton)

初始化(生成)第二個UIViewController(lightRed):

let lightRed = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "lightRed")

推出UIViewController(由下往上push):

present(lightRed, animated: true, completion: nil)

推出UIViewController(由右至左轉場):

//navigationController?:ViewController可能會被包進navigationController,也有可能不會,故為Optional
self.navigationController?.pushViewController(lightRed, animated: true)

LightRedViewController.swift
按下button(Go to View 1)執行的方法:

@IBAction func gotoView1(_ sender: UIButton) {
        navigationController?.popViewController(animated: true)
    }

LightGreenViewController.swift
按下button(Go to View 2)執行的方法:

@IBAction func backtoView2(_ sender: UIButton)

回到上個畫面(由左而右轉場時的返回方式):

navigationController?.popViewController(animated: true)

回到上個畫面(由下而上轉場時的返回方式):

dismiss(animated: true, completion: nil)

回到第一個畫面:

navigationController?.popToRootViewController(animated: true)

Results

http://sendvid.com/fuum0ibh


上一篇
16/30 轉來轉去的Segues-1
下一篇
18/30 轉來轉去的Segues-3
系列文
Hello Swift30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言