🍎 iOS/iOS 기본 & UIKit

[iOS] Swift에서 데이터를 전달하는 방법

dev_zoe 2021. 9. 7. 17:12
반응형

1. 프로퍼티에 직접 접근해 data 전달하기

- 네비게이션 컨트롤러에서 데이터를 전달하는 방식

- 프로퍼티란? : 클래스에 속해있는 변수

 

ViewController (첫번째 화면)

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var propertyTextField: UITextField! //텍스트필드의 변수를 가져와서
    @IBAction func sendData(_ sender: Any) {
        guard let vc = storyboard?.instantiateViewController(identifier: "secondViewController") as? SecondViewController else { return }
        
        vc.text = self.propertyTextField.text ?? "" //기본값은 "", 두번째 뷰 컨트롤러의 Text를 textfield의 text로 지정
        
        self.navigationController?.pushViewController(vc, animated: true)
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
}

SecondViewController

먼저 SecondViewController에 storyboard id를 지어주고, use storyboard id 체크

데이터를 띄워줄 label을 IBOutlet으로 가져와서 변수 선언을 해주어야함!

그리고 해당 label에 Viewcontroller에서 text 프로퍼티에 값을 준 부분을 고대로 세팅하면 끝!

 

- present로 위로 띄워주는 방식으로 데이터를 전달하는 방법

2. 세그를 이용해 데이터 전달하기

세그(Segue)란?

사전적 정의로 '끊기지 않고 넘어가다', '계속되다' 라는 뜻. 즉, xcode에서 화면이 다음으로 이어지는 것을 의미함

첫번째 뷰컨트롤러에서 두번째 컨트롤러까지 control을 누른 상태에서 끌어오게 되면, 위와같은 창이 생김!

여기서 첫번째 뷰컨트롤러는 source viewcontroller가 되고, 두번째 뷰컨트롤러는 destination viewcontroller가 됨

여기서 Show 클릭!

 

 

반응형