WWDC23에서 UIViewController의 Lifecycle에 viewIsAppearing
이라는 메서드가 새로 나와서 발표되었습니다. 그래서 오늘은 viewIsAppearing이 무엇인지, 언제 사용하는지에 대해 알아보겠습니다.
애플 문서에 따르면 시스템이 뷰 계층에 뷰 컨트롤러의 뷰를 추가하고 있음을 뷰 컨트롤러에 알려주는 메서드라고 합니다.
UIViewController의 Lifecycle을 보면
viewIsAppearing은 viewWillAppear와 viewDidAppear사이에서 View가 added된 후 불리게 됩니다.
애플 문서: https://developer.apple.com/documentation/uikit/uiviewcontroller
viewWillAppear
은 View가 추가되기 전에 호출되지만 viewIsAppearing
은 View가 추가된 후에 호출된다는 차이점이 있습니다.
애플 문서를 보면
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를 업데이트할 때 사용하라고 돼있습니다.
또한 제약 조건을 명시 해놨는데
alongside animations을 추가하기 위해 transitionCoordinator에 접근할 때와 같이 view transition이 시작되기 전에 callback이 필요할 때 또는
view controller / view traits / hierarchy / geometry에 의존하지 않는 작업을 수행할 때 사용하라고 명시해놨습니다.
https://developer.apple.com/documentation/uikit/uiviewcontroller
https://developer.apple.com/documentation/uikit/uiviewcontroller/4195485-viewisappearing
https://zeddios.tistory.com/1390