[WWDC] viewIsAppearing

Han's·2023년 12월 31일
0
post-thumbnail
post-custom-banner

새로운 발표

WWDC23에서 UIViewController의 Lifecycle에 viewIsAppearing이라는 메서드가 새로 나와서 발표되었습니다. 그래서 오늘은 viewIsAppearing이 무엇인지, 언제 사용하는지에 대해 알아보겠습니다.


viewIsAppearing 이란?

애플 문서에 따르면 시스템이 뷰 계층에 뷰 컨트롤러의 뷰를 추가하고 있음을 뷰 컨트롤러에 알려주는 메서드라고 합니다.


UIViewController Lifecycle

UIViewController의 Lifecycle을 보면
viewIsAppearingviewWillAppearviewDidAppear사이에서 View가 added된 후 불리게 됩니다.

애플 문서: https://developer.apple.com/documentation/uikit/uiviewcontroller

viewWillAppear은 View가 추가되기 전에 호출되지만 viewIsAppearing은 View가 추가된 후에 호출된다는 차이점이 있습니다.


viewIsAppearing을 언제 사용해야 하는 걸까?

애플 문서를 보면

The traits and geometry aren’t up to date when the system calls viewWillAppear(:), but they are when the system calls viewIsAppearing(:), so use viewIsAppearing(_:) to update your views.

viewIsAppearing이 불릴 때 traits, geometry(size, safe area, and so forth)가 최신 상태이므로 View를 업데이트할 때 사용하라고 돼있습니다.

또한 제약 조건을 명시 해놨는데

  • You need a callback before the view transition begins, such as when accessing the transitionCoordinator to add alongside animations. Alongside animations are animations that you direct the framework to perform concurrently with the view controller transition animations.
  • You need balanced callbacks to do something that doesn’t depend on the view controller or view traits, hierarchy, or geometry. Use cases include registering for database notifications in viewWillAppear(:) and unregistering in viewDidDisappear(:).

alongside animations을 추가하기 위해 transitionCoordinator에 접근할 때와 같이 view transition이 시작되기 전에 callback이 필요할 때 또는
view controller / view traits / hierarchy / geometry에 의존하지 않는 작업을 수행할 때 사용하라고 명시해놨습니다.


viewWillAppear와 차이점


참고 자료

https://developer.apple.com/documentation/uikit/uiviewcontroller
https://developer.apple.com/documentation/uikit/uiviewcontroller/4195485-viewisappearing
https://zeddios.tistory.com/1390

profile
🍎 iOS Developer
post-custom-banner

0개의 댓글