IOS 프로그래밍

본문 바로가기
사이트 내 전체검색


IOS 프로그래밍
IOS 프로그래밍

11. 스토리보드에서 Segue 사용하기 (2)

페이지 정보

작성자 관리자 댓글 0건 조회 3,150회 작성일 20-01-04 11:18

본문

11. 스토리보드에서 Segue 사용하기 (2)

이번에는 화면 전환시 데이터를 전달하는 방법을 실습하겠다.



Scene과 뷰 컨트롤러 연결하기 


- 현재 2개의 화면을 가지고 있지만, 뷰 컨트롤러는 하나밖에 없다.

- 화면2에서 어떠한 기능을 수행하기 위해서는 뷰컨트롤러가 필요하다.

- 먼저 뷰 컨트롤러를 위한 파일을 프로젝트에 추가한다.

- 프로젝트 내비게이터 화면 상단의 Storyboard 타깃을 Ctrl를 클릭한 후 New File을 선택한다.




1.png


2.png


3.png


4.png


Group : Storyboard 를 선택한다. 


5.png



프로젝트 네비게이터 패널에서 Main.storyboard 을 선택하면, 화면2의 ViewController 버튼을 선택한다. 

Identity Inspector에서 Class를 Scene2ViewController로 변경한다.



6.png



7.png



화면2는 뷰 컨트롤러와 필요한 기능을 구현하기 위한 소스파일을 가지게 된다. 



화면들 사이의 데이터 전달


- 스토리보드로 작업할 때 가장 일반적으로 요구되는 것들 중 하나는 하나의 화면에서 다른 화면으로 전환되는 동안 데이터를 전달하는 것이다.

- prepare 메서드를 이용하여 전달할 수 있다.


ViewControllor.swift 파일을 수정한다.


import UIKit


class ViewController: UIViewController {


    @IBOutlet weak var scene1Label: UILabel!

    var msg: String = ""

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view.

        msg = "hello"

        print("Scene 1 : ",msg)

       

    }

    

    @IBAction func returned (segue : UIStoryboardSegue){

        

    }

    

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

        /*

        if seque.identifier == "segueScene2VC" {

         }

        */

        if segue.destination is Scene2ViewController {

            let vc = segue.destination as! Scene2ViewController

            vc.msg = self.msg

             

        }

    }

}

 

prepare 메소드에서 segue를 찾고, 화면2의 변수(msg)에 화면1에서 생성한 변수(msg="hello")를 전달한다.



Scene2ViewControllor.swift 파일을 수정한다.


import UIKit


class Scene2ViewController: UIViewController {

    

    var msg: String = ""

    

    override func viewDidLoad() {

        super.viewDidLoad()


        // Do any additional setup after loading the view.

        print("Scene 2 : ",msg)

    }

    

}


Scene2ViewControllor.swift 에 msg 변수를 추가한다.

viewDidLoad 메소드에 print("Scene 2 : ",msg)를 이용하여 msg변수가 어떻게 바뀌는가를 확인한다.



어플리케이션 실행하기



8.png


실행후 메세지 출력창을 확인한다.


9.png


화면1에서 화면2로 전환 후, 메세지 출력창을 확인한다. 


msg 변수의 hello가 화면2의 msg 변수로 전달된 것을 확인할 수 있다.



프로그램으로 스토리보드 segue 호출하기


- 화면의 컨트롤에서 segue를 호출하도록 구성할 수도 있지만, 애플리케이션 코드에서 호출하는 것도 가능하다.

- 식별자를 segue에 할당하고, 그 segue를 실행하고자 하는 뷰 컨트롤러의 performSegue(withIdentifier: "segueScene2VC", sender: self)메소드를 호출하면 된다.

- Segue의 식별자를 설정하기 위해서는 스토리보드 캔버스에서 segue를 선택하고 애트리뷰트 인스펙터를 열고, Identifier필드에 값을 설정한다.




10.png


11.png



ViewController.swift 파일에 아래와 같은 함수를 추가한다.


    func goScene2 () { 

        performSegue(withIdentifier: "segueScene2VC", sender: self)

    }

    


goScene2 메소드를 호출하면, 화면2로 바뀌게 된다.



댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.