Xcode unwind segue로 data pass 하기

김민석·2021년 7월 23일
0

Xcode

목록 보기
5/10

먼저 새로운 ViewController를 만들고
VC1에 레이블과 버튼을 만들고, VC2에 텍스트 필드와 버튼을 붙입니다.
이 VC2에있는 텍스트필드의 텍스트로 VC1의 레이블을 변경해주려고 합니다.

다음으로 네비게이션 컨트롤러를 넣습니다.

그 다음 VC1의 Go to VC2 버튼에서 Control 키를 누른후 show를 클릭해줍니다.

에뮬레이터로 실행해보면 Go to vc2 버튼 클릭시 vc2로 넘어가는것을 확인할 수 있습니다.
이제 vc2와 연결되는 ViewController 파일을 만들어줍시다.
Cocoa Touch Class 파일로 만들어줘야합니다.
Class명은 ViewController2로 하겠습니다.

이제 스토리보드와 방금 만든 ViewController 파일을 연결시켜줍시다.

그 후 vc2에 있는 TextField를 ViewController2.swift 파일에 outlet 시켜줍니다.
변수명은 vc2TextField로 하겠습니다.

TextField에 텍스트를 입력하고 그 텍스트를 vc1 레이블의 텍스트로 바꿔주어야 하기 때문에 back 버튼에 action을 달겠습니다.
중요한점은 데이터를 불러오는 쪽에서 작성해야 합니다.
따라서 ViewController.Swift 파일로 이동하고, vc1의 label를 outlet 해주고, vc2에 있는 버튼에 action을 주겠습니다.

다음과 같이 코드 수정을 하겠습니다.

@IBAction func vc2Btn(_ sender: UIStoryboardSegue) {
        if let from = sender.source as? ViewController2{
            vc1Label.text = from.vc2TextField.text
        }
}

unwind segue를 설정합니다.
vc2의 스토리보드로 돌아와 back 버튼에 control 키를 클릭하고 Exit에 놓습니다.
그 후 작성한 vc2Btn 메소드를 선택해줍니다.

한번 실행해보겠습니다.


vc1의 레이블이 vc2의 텍스트필드의 텍스트의 값으로 변하는것을 확인할 수 있습니다!

profile
안녕하세요 95년생 김민석입니다

0개의 댓글