프로젝트 시작(1-1) [rootViewController],[navigationController],[Programmatically]

JSLee·2021년 10월 27일
0

안녕하세요! navigationController 설정 방법의 대하여 Post를 작성해 볼까 합니다.!

설정 방법에는 스토리보드로 하는것이 있고 코드로만 작성하는것이 있는데요. 저는 코드로만 하는 방법으로 설명해 드릴께요 ㅎ

일단 이런식으로 inspector를 구성을 해주겠습니다.!

RootViewController 는 App이 실행 된후 바로 보여질 ViewController를 뜻합니다. 그렇기에 첫페이지 UI작업은 이쪽에서 해주시면 되겠습니다!

그리고 Coordinator 파일은

이런식으로 작업이 될것인데요 천천히 살펴보면

window는 저희가 보게될 화면을 뜻하게 되여 init으로 넘어올 window를 받아주면 되구요.

start 함수에는 아까 만든 RootViewController 인스턴스를 생성해준뒤

그 인스턴스를 기반으로 UINavigationController 인스턴스를 생성해 줍니다!

파라미터로 받는 rootViewController 에 들어갈것은 naviagation을 통해 보여질 ViewController가 되겠고 그게 이제 RootViewController가 되는거에요!.

그렇게 만들어진 네비게이션 인스턴스를 window rootView 로 설정하게 되면

이제 화면엔 저희가 처음 시작으로 지정한 ViewController가 보여지게 되는것입니다!

그럼 이제 SceneDelegate 에서 Coordinator 를 실행해 주어야 겠죠?

UIWindowScene 인스턴스 를 생성해주고 프로퍼티 window에 넣어 줍니다.

그리고 Coordinator 인스턴스를 생성한뒤 그안에 있는 window에 델리게이트에 있는 window를 보내주어 값을 받고 함수를 실행주면 되겠습니다.!

사실 Coordinator 자체 를 SceneDelegate에 작업해도 무방하긴 하지만.. MVVM 아키텍처를 이해하고 작업을 하려면 처음부터 이런식으로 함수들을 분산 시키고 나누면서 작업을 할줄 알아야 되서 이렇게 작업을 시작하는것이 좋을꺼 같습니다!!.블로그를 시작한지 얼마 되지않아서 어떻게 설명해야할지 몰라서 저도 많이 답답하고 생각하고 작성하긴 하는건데...이해가 되시고 도움이 되실지 모르겠어요..계속 하다보면 점점 늘지 않을까 생각합니다! ㅎㅎ 감사합니다!!

profile
iOS/Android/FE/BE

0개의 댓글