2017-02-27 9 views
-2

나는 책의 연습을하고 있으며 뷰 컨트롤러를 프로그래밍 방식으로 만들고 단위 테스트를 만들고 있습니다. 이 책은 또한 애플의 레퍼런스 문서를 읽었을 때의 경험을 통해, 애플의 레퍼런스는 viewDidLoad, viewWillAppear, viewDidDisappear 등을 직접 호출하지 말라고 말한다. 나는 왜 이것이지, 우리가한다면 어떻게되는지 궁금하다.왜 Apple은 viewWillLoad, viewWillAppear, viewDidDisappear 등을 호출하지 말 것을 권장합니까?

+3

해당 방법에 대한 설명서를 읽으십시오. 보기 컨트롤러의 수명주기에 대해 읽어보십시오. 그것들은 프레임 워크에 의해 호출됩니다. 그것들은 직접 호출 할 의도가 없습니다. – rmaddy

+3

그것은 권장 사항이 아닙니다. 그것은 법입니다. – matt

+1

누구도 viewWillAppear을 직접 호출하면 Universe가 즉시 사라지고 더 이상하고 이상한 것으로 대체 될 것이라는 이론이 있습니다. –

답변

4

viewDidLoad, viewWillAppear, viewDidDisappear 등이시키는의 실행의 방법은 당신이 어떤 중요한 일이 일어나고있는 것을 알고 있습니다

  • viewDidLoad, 뷰 컨트롤러는 해당 뷰 획득했다

  • viewWillAppear ,보기 컨트롤러의보기가 곧 인터페이스에 배치됩니다.

  • viewDidDisappear은 뷰 컨트롤러의 뷰 인터페이스이 런타임가 담당하는 이벤트입니다

에서 제거하는 것입니다, 그리고, 당신은 그들이 당신이 응답 할 수 있도록 일어나고 알려 당신에게 메시지를 보냅니다 당신은 적절한 순간에 바란다. 이러한 일들이 (런타임을 호출하는 한 제외) 일어나고있는 때 을 모르기 때문에 그것은 당신위한 아무 의미가 없을 것입니다

그들에게 전화! 임의의 순간에 전화를했다면 거짓말 쟁이가됩니다. 보기가 방금로드되었을 때 실제로는 이 아니며이로드되지 않았기 때문에 자신의 코드를 손상시킬 수 있습니다.