viewDidLoad
과 의 차이점은 무엇입니까 viewDidAppear
? 이러한 함수에는 어떤 종류의 초기화 또는 사용자 지정 코드가 포함됩니까?
예 :에 presentModalViewController
있을 때만 작동 viewDidAppear
하고 켜져 있지 않을 때만 작동합니다 viewDidLoad
.
답변
viewDidLoad
뷰 컨트롤러가 메모리에 처음로드 될 때 정확히 한 번 호출됩니다. 여기에서 인스턴스 변수를 인스턴스화하고이 뷰 컨트롤러의 전체 수명주기 동안 유지되는 뷰를 빌드 할 수 있습니다. 그러나 일반적으로이 시점에서는보기가 아직 표시되지 않습니다.
viewDidAppear
뷰가 실제로 표시 될 때 호출되고 뷰 컨트롤러의 수명주기 동안 여러 번 호출 될 수 있습니다 (예 : 모달 뷰 컨트롤러가 해제되고 뷰가 다시 표시 될 때). 여기에서 레이아웃 작업을 수행하거나 UI에서 그리기를 수행 할 수 있습니다 (예 : 모달 뷰 컨트롤러 표시). 그러나 여기서하는 모든 작업은 반복 가능해야합니다. 여기에 항목을 유지하지 않는 것이 가장 좋습니다. 그렇지 않으면 뷰가 사라질 때 해제하지 않으면 메모리 누수가 발생합니다.
참조 : https://developer.apple.com/documentation/uikit/uiviewcontroller
답변
간단히 말해서에서 컨트롤이나 배열을 만들고 싶을 것입니다 viewDidLoad
.에서와 같이 viewDidAppear
해당 컨트롤이나 배열을 새로 고치려는 위치입니다.
viewDidLoad
컨트롤러가 생성 될 때 한 번 viewDidAppear
호출되고 뷰, 음, DID가 나타날 때마다 호출됩니다. 따라서 표시하는 모달 뷰가 있다고 가정하면 해당 뷰가 닫힐 때 viewDidAppear
호출되고 viewDidLoad
호출되지 않습니다.