UIViewController

Judy·2022년 5월 4일
0

iOS

목록 보기
6/28

UIViewController

UIViewController 클래스는 대부분의 뷰 콘트롤러가 공통으로 가지고 있는 동작을 정의한다. UIViewController의 인스턴스를 만들기보단 하위 클래스를 만들어 필요한 프로퍼티와 메서드를 정의해서 사용하면 된다.

뷰 컨트롤러의 책임

  1. 데이터 변화를 뷰 콘텐츠에 업데이트
  2. 사용자와 뷰의 상호작용에 대한 응답
  3. 인터페이스의 레이아웃 관리와 뷰의 사이즈 조정
  4. 다른 컨트롤러(뷰 컨트롤러를 포함한)와 협력

뷰 컨트롤러는 뷰와 밀접한 관계를 가지고 있으며, 이벤트를 처리한다.

View 관련 알림 처리

뷰의 시각적인 변경이 있을 때 뷰 컨트롤러는 자동적으로 자체 메서드를 호출하여 변화에 응답한다. viewWillAppear(_:)로 뷰가 화면에 표시되도록 준비할 수 있고, viewWillDisappear(_:)로 변경 사항이나 상태 정보를 뷰가 사라지기 전에 저장할 수 있다. 이외에도 메서드를 상황에 맞게 사용할 수 있다.

모든 will 콜백과 did 콜백이 쌍을 이루는 것은 아니다. 만약 will 메서드로 프로세스를 시작했다면 did와 상응하는 will 메서드 모두에서 프로세스를 종료해야 한다.

  • viewWillAppear(_:) : 뷰가 뷰 계층에 추가될 것을 뷰 컨트롤러에게 알림
  • viewDidAppear(_:) : 뷰가 뷰 계층에 추가되었음을 뷰 컨트롤러에게 알림
  • viewWillDisappear(_:) : 뷰가 뷰 계층에서 제거될 것을 뷰 컨트롤러에게 알림
  • viewDidDisappear(_:) : 뷰가 뷰 계층에서 제거되었음을 뷰 컨트롤러에게 알림

뷰의 상태 메서드 관계

  • 나타나기 전 viewWillAppear(_:) --- 나타나는 중 ---> 나타남 viewDidAppear(_:)

  • 사라지기 전 viewWillDisappear(_:) --- 사라지는 중 ---> 사라짐 viewDidDisappear(_:)


viewDidLoad()

뷰 컨트롤러가 메모리에 로드 된 후 호출되는 메서드

일반적으로 viewDidLoad()를 통해 뷰에 대한 추가 초기화를 진행한다.

사용 예시

viewDidLoad

  • 한 번만 호출되는 네트워크 콜, 화면의 초기화

viewWillAppear

  • 화면에 보여지는 디스플레이, 오토레이아웃, 액션 해제, 필드 감추기 등

viewDidApper

  • 코어 데이터로 저장, 애니메이션의 시작




참고자료
Apple Developer - UIViewController

profile
iOS Developer

0개의 댓글