화면 천이의 구현 방법 정리 [Xcode/Storyboard]

7872 단어 Xcode화면 전환
Xcode/Storyboard에서 화면 전환을 구현하는 방법을 출력해 보겠습니다.

환경



・Mac Book Pro (macOS:Big Sur)
・Xcode(ver:12.5)

화면 전환 ① (Storyboard 전용)



1.storyboard에서 Controller 내의 Button에서 Controller에 Segue를 연결한다.
2.Show 또는 Present Modally를 선택


화면 전환 ② (performSegue에서 전환)



1.ViewController끼리를 Segue로 연결
2.Show 또는 Present Modally를 선택
3.Segue의 identifier를 붙인다(아래의 코드의 경우는 「next」)
4. 화면 천이하고 싶은 타이밍에 아래의 코드를 작성


ViewController.swift
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }


    @IBAction func next(_ sender: Any) {

        performSegue(withIdentifier: "next", sender: nil)
    }

}

화면 천이 ③ (performSegue + prepare로 값을 건네주어 천이)



1.ViewController끼리를 Segue로 연결
2.Show 또는 Present Modally를 선택
3.Segue의 identifier를 붙인다(아래의 코드의 경우는 「next」)
4. 화면 천이하고 싶은 타이밍에 「performSegue」를 쓴다
5.prepare에서 값을 전달하고 싶은 처리 내용을 작성

ViewController.swift
class ViewController: UIViewController {

    var str = "画面遷移成功"

    override func viewDidLoad() {
        super.viewDidLoad()
    }


    @IBAction func next(_ sender: Any) {

        performSegue(withIdentifier: "next", sender: nil)
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        let nextVC = segue.destination as! NextViewController

        nextVC.str = str
    }

}

NextViewController.swift
class NextViewController: UIViewController {

    "値を受け取る変数を用意"
    var str = String()

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

화면 전환 ④ (NavigationController + Storyboard ID로 화면 전환)



1. ViewController를 선택한 상태에서 Editor > Embed in > Navigation Controller를 선택
2. 화면 천이하는 ViewController의 StoryboardID를 기술
3.Use Storyboard ID에 체크를 넣는다
4. 아래와 같이 코드 작성

ViewController.swift
class ViewController: UIViewController {

    var str = "画面遷移成功"

    override func viewDidLoad() {
        super.viewDidLoad()
    }


    @IBAction func next(_ sender: Any) {

        let nextVC = self.storyboard?.instantiateViewController(identifier: "nextVC") as! NextViewController

        nextVC.str = str

        self.navigationController?.pushViewController(nextVC, animated: true)
    }
}

NextViewController.swift
   class NextViewController: UIViewController {

    var str = String()

    override func viewDidLoad() {
        super.viewDidLoad()

      print(str)
    }
}

이상으로, 나름대로 화면 천이의 방법을 정리해 보았습니다.

Udemy에서 메모한 코드를 나름대로 이해하고 출력해 나가려고 생각합니다.

좋은 웹페이지 즐겨찾기