2022년 05월 11일 정리

루틴맨·2022년 5월 11일
0

화면 간 데이터 전달하기

  1. 코드로 구현된 화면 간 데이터 전달

    1) 인스턴스를 다운캐스팅하여 ViewController 간의 데이터 전달
    - ViewController의 인스턴스를 전환하는 화면의 ViewController의 타입으로 다운캐스팅 하여 프로퍼티에 접근

    2) 전환된 화면에서 이전 화면으로 데이터를 전달하기
    - delegate 패턴 이용, AnyObject 타입(https://gyuios.tistory.com/130 참조)
    - 데이터를 전달할 ViewController에서 delegate protocol을 구현

    • delegate 패턴 사용 시, delegate 변수에 weak 키워드를 사용하여야 강한 순환 참조 문제 예방
    • 데이터를 전달 받을 ViewController에서 delegate를 self로 지정(https://zeddios.tistory.com/8 참조) 후 채택한 delegate protocol을 준수하도록 구현
  2. Segue로 전환된 화면 간 데이터 전달

    1) prepare() 메소드를 오버라이드하여 전환될 화면에 데이터 전달
    - 오버라이드하면 Segue가 실행되기 이전에 시스템에 의해서 자동으로 호출됨
    - prepare() 메소드에 전환하려는 ViewController의 인스턴스를 segue.destination 프로퍼티로 가져온 후 다운캐스팅
    - 전달받을 ViewController의 viewDidLoad()부분에서 데이터 전달


github 주소 : https://github.com/BEYun/iOS_Practice/tree/main/ScreenTransition

profile
차근차근 꾸준히

0개의 댓글