loadView()
뷰디드로드 보다 전에 호출이 되는 친구
기본값이 nil이다. 따라서, loadView를 사용 시에 super 메서드를 사용하면 기본값이 nil이기 때문에 사용하면 안된다.
- 스보 상에서는 내부적으로 자동으로 loadView를 호출하고 스보의 루트뷰를 가져와서 넣는 것으로 동작한다.
- 코드로 작성 시에는 뷰컨에서 loadView()를 호출해서 rootView를 등록해줌으로써 채워준다. (새로운 rootView를 껴넣고 싶을 시에!!!)
근데 새로운 rootView를 채워주고 싶을 수도 있다.
viewDidLoad는 rootView까지 메모리에 올라가고 난 후의 상황이다. (이미 rootView가 만들어진 상태)
근데 우리가 만든 BaseView는 아래 사진처럼 이 정도까지 만들어둔 것이기 때문에
rootView를 교체하려면 loadView 메서드를 사용하고 미리 바꿔줘야 하는 것이다.
어떻게 쓰는데?
rootView를 교체하기 위해서 rootView로 사용할 CustomView (여기서는 WriteView)를 만든다.
BaseView/BaseViewController
이 BaseView/BaseViewController는 기존 커스텀뷰와 뷰컨에 자주 반복적으로 사용되는 코드를 구조화해서
가독성을 높이고, 코드 중복을 높이기 위해 클래스의 상속의 특징을 잘 사용한 것이다.
엄청나게 편하다고 생각해보기보다는 ViewDidLoad가 깔끔해진 느낌? 그리고 부모 클래스 메소드에 기능 확장해서 쓰려면 override, super 추가된다는 점... 고런 점.... 캐치미에서는 IQKeyboard를 쓰지 않아서 주로 텍스트필드가 있는 뷰에서 화면 탭스처 시에 키보드가 dismiss 되거나, 백그라운드 컬러를 하나로 통일성 있게 맞춰주려고 썼던 것 같다.
그리고 서버 통신하면서 주로 BaseTargetType으로 자주 사용해본 것 같다. BaseResponeModel이라거나,,, 제네릭이랑 엮어서 사용했던 것 같다.(라기보다는 줍줍해서 그냥 마구잡이로 쓴 것 같다. 이게 내가 쓴 것이라고 할 수 있을까? 그냥 프로젝트하면서 매번 반복작업이 아닐까...? 코드찍어내는 공장마냥....) 이번 기회에 Diary 과제하면서 제대로 생각하면서 체화를 시켜보도록 해야겠다..
'⭐️ 개발 > iOS & Swift' 카테고리의 다른 글
[Swift] Realm 진짜.그냥.간단.정리 (0) | 2022.08.24 |
---|---|
[iOS] Realm 기본 설계 + Realm에 저장하고 가져오기 (0) | 2022.08.23 |
[Swift] Generic (0) | 2022.08.21 |
[iOS] UIView의 초기화 구문 다시 알자! (0) | 2022.08.19 |
[iOS] CodeBase로 가보자고 (0) | 2022.08.17 |