목차
프로퍼티에 직접 접근해 data 전달하기
1. 목적지 뷰컨트롤러 객체 생성.
guard let vc = storyboard?.instantiateViewController(identifier: "destinationViewController") as? DestinationViewController else
{ return }
( 프로퍼티 직접 접근 가능... )
Swift
복사
2. 목적지 뷰컨트롤러 프로퍼티 직접 접근
vc.text = "블라블라"
Swift
복사
3. 생성한 목적지 뷰 컨트롤러 객체로 push
self.navigationController?.pushViewController(vc. animated: true)
Swift
복사
4. 목적지 뷰 컨트롤러의 UI 업데이트
class DestinationViewController: UIViewController {
@IBOutlet weak var textLabel: UILabel!
var text: String = ""
override func viewDidLoad() {
super.viewDidLoad()
self.textLabel.text = text
}
}
Swift
복사
Segue 를 이용한 데이터 전달
segue 준비
하나의 세그는 2가지 속성을 갖습니다.
1.
Source : 전환시, 출발지에 해당하는 뷰 컨트롤러
2.
Destination : 도착점에 해당하는 뷰 컨트롤러
세그를 통한 뷰 전환시
prepare() 함수가 호출됩니다
이 함수를 override 해
함수 호출시 데이터 전달과정을 구현해주면 됩니다.
prepare() 함수 override
override func prepare(for segue: UIStoryBoardSegue, sender: Any?) {
if segue.destination is DestinationViewController {
let vc = segue.destination as? DestinationViewController
vc?.text = "블라블라"
}
}
Swift
복사
1.
identifier 를 식별해 해당 segue 에 맞는 로직 실행
2.
목적지 뷰 컨트롤러의 클래스로 segue.destination 다운캐스팅
3.
프로퍼티에 데이터 할당