loadView와 viewDidLoad 차이에 대한 질문입니다.

3 답변 글타래를 보이고 있습니다
  • 글쓴이
    • 인담
      참가자
      • 글작성 : 9
      • 답글작성 : 9

      안녕하세요.

      Swift를 공부한지 시간이 흐르니 스토리보드와 인터페이스 빌더로 UI를 구성하는 거 보다 코드만으로 View를 그리는 경우가 제게 더 편해서 최근 프로젝트부터는 코드로 뷰를 그리기 시작했습니다.

      그런데 최근에 View Life Cycle중 loadView라는 것의 존재를 알게 되었고 지금까지 사용해왔던 viewDidLoad와 비교를 하기 위해 여러 레퍼를 찾아봤는데 이해가 한방에 갈정도로 이해시켜준 곳이 아직 없었습니다. 또 코드로 View를 구성할 때 loadView에 구현하는 것이 좋다라는 말을 들었지만 그 근거가 명확하지 않습니다.ㅠㅠ

      그래서 제 질문을 요약하면 이렇습니다:

      1. laodView와 viewDidLoad의 가장 큰 차이는 무엇이고 각각 사용하는 경우가 어떻게 다를까요?
      2. 위에 들었던 것처럼 실제로 코드만으로 View를 작성할때는 작성함수를 loadView에 작성하는 것이 좋을까요?

      답변에 대해서 미리 감사합니다.

    • nobleidea
      참가자
      • 글작성 : 5
      • 답글작성 : 8

      좋은 레퍼가 있어 공유드립니다.
      뷰가 그려질때와 뷰가 로드될때를 나눠서 생각해보시면 좋을 것 같습니다.
      https://mrgamza.tistory.com/279

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 580

      loadView 메서드는 뷰 컨트롤러가 자신의 뷰, 그러니까 흔히 self.view처럼 접근하는 그 뷰 컨트롤러의 메인 뷰를 로드할 때 호출되는 메서드입니다.

      즉, 그 메인뷰를 생성하려고 호출하는 메서드죠. 그래서 이 메서드 안에서 새로운 뷰를 만들어서 반환해줘도 됩니다.

      스토리보드를 쓰면 어차피 스토리보드에 있는 뷰를 가져와 쓸테니 굳이 필요하지 않다고 볼 수 있겠네요.

      viewDidLoad는 이 뷰가 모두 생성되고 메모리에 생성된 후에 호출되는 메서드입니다. 즉, 뷰컨트롤러의 메인뷰가 생성 되었으니 이제 이 위에 하고픈걸 해라, 이런 뜻으로 보면 되겠습니다.

      링크의 글도 참고해보면 좋고, 위 글을 읽고 애플의 공식문서를 다시 읽어봐도 도움이 될 것 같아요.

      • 이 답변은 야곰에 의해 4 years 전에 수정됐습니다. 이유: 참고링크추가
    • 인담
      참가자
      • 글작성 : 9
      • 답글작성 : 9

      답변해주셔서 감사합니다.

      그러면 코드로만 뷰를 작성할때 일반적인 경우라면 viewDidLoad랑 loadView에서 코드를 작성해도 상관이 없을까요?

      • 야곰
        키 마스터
        • 글작성 : 37
        • 답글작성 : 580

        @indam94

        loadView는 뷰 컨트롤러의 기본 뷰를 커스텀 뷰로 사용하고자 할 때 유용합니다. #3958에 첨부한 링크에도 loadView에서 새로운 뷰를 생성해서 return해주는 코드를 볼 수 있죠.
        반면에 기본 UIView를 뷰 컨트롤러의 기본 뷰로 사용하고, 그 위에 무언가 얹어서 쓰거나 뷰가 생성된 이후에 어떤 세팅을 해서 사용하고 싶다면 viewDidLoad에서 합니다.
        용도의 차이가 분명히 있지요 🙂

3 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom