안녕하세요. 미닛메이드 Minnit 입니다😌
이번에는 instantiateViewController라는 swift에서 사용되는
Instance Method에 대해 알아보겠습니다.
apple의 공식문서를 확인해보면
" 지정된 식별자를 가지고 스토리보드의 데이터를 초기화 해 뷰 컨트롤러를 만든다 "
라고 쓰여있는 걸 확인할 수 있습니다 !
🔍 여기서 잠깐 , identifier란 무엇일까요?
identifier은 스토리보드에서 뷰 컨트롤러를 구분할 수 있게 만들어 주는
뷰의 별명이라고 할 수 있습니다.
여기서는 "FirstVC" 라는 식별자를 이 뷰에게 부여한 것입니다.
다시 앞으로 가서,
instantiateViewController의 설명에서 제가 생각하는 가장 중요한 포인트는
❗️ 데이터 초기화 ❗️입니다.
instantiateViewController를 사용하여 뷰 컨트롤러를 만들게 될 때마다
데이터는 초기화되고 새로운 인스턴스가 생성되게 됩니다!
그렇기 때문에 instantiateViewController는 새로운 뷰로 넘어갈 때 사용해야 합니다.
guard let dvc = self.storyboard?.instantiateViewController(identifier: "nextVC") else {
return
}
self.present(dvc, animated: true, completion: nil)
그런데 만약, 이전에 생성했던 뷰로 넘어가고 싶을 때
instantiateViewController를 사용하면 어떻게 될까요?
( A 뷰컨 -> B 뷰컨 에서 다시 A뷰컨으로 가고 싶다면? )
instantiateViewController를 통해서 넘어간 A 뷰컨은
이전에 생성했던 뷰가 맞다고 할 수 있을까요...!?
제가 생각하는 답은 NO❌ 입니다!
다시 A 뷰컨으로 넘어갈 때 instantiateViewController를 사용해서 넘어간다면
다시 데이터가 초기화되고 새로운 인스턴스가 생성되기 때문에
물론 A 뷰 이지만, B로 넘어오기전에 생성됐던 데이터와는 다릅니다 ~
그래서 이전의 뷰로 돌아갈 때 이전에 할당했던 데이터를 다시 보고싶다~ 한다면
instantiateViewController 와는 다른 Method를 사용해서 이동해야합니다☺️
Instance Method인 instantiateViewController에 대해서
apple 공식문서를 통해 자세히 알아보았습니다 !
혹시 틀린 점 있거나 질문은 댓글 남겨주세요!!
감사합니다 :)
Comment