ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1005-iOS앱개발 기초>화면 전환구조와 NavigationController
    iOS/iOS기초(네이버edwith*obj-c) 2022. 3. 5. 02:41

    - Navigation Controller는 뒷단에서 화면들이 전환될 수 있게 도와주는 역할

    - container controller view이기 때문에 하단의 contant view ( 실제 화면에 보여질 view )는 별도의 view가 들어가서 보여주고

    이 view를 관리하는 별도의 view controller가 존재

     

    1.  Navigation Controller

    window안에는 root view controller라는 프로퍼티가 존재 --> 화면 맨 처음에 보여줄 view를 관리

    - Navigation Controller와 연결

     

     

    Navigation Controller는 자신이 관리하는 navigation bar를 제외하고는 스스로 데이터를 표현하지는 않음

    상단의  navigation bar를 제외한 나머지 부분은 별도의 view에서 가져오고 (content view)
    별도의 view controller에서 관리
    - 여기서는 tableview를 사용

     

     

    2. UITableViewController

    - UIViewController는 일반적인 view를 관리하는 녀석

    - 우리의 첫 화면은 tableview -> 테이블 뷰는 기능이 다양하기 때문에 특별히 관리를 더 편하게 할수 있도록

        UITableViewController를 제공해줌

     

    3. 맨 첫 화면에 해당하는 내용을 MainTableViewController가 관리하도록 설정

    - Navigation Controller는 마치 "윈도우가 root view controller​를 가지는 것 처럼"

    맨 시작점인 view controller를 root view controller로 가지고있음

    -->  Navigation Controller의 root view controller를 MainTableViewController가 되도록 설정

     

    Navigation Controller의 root view controller를 MainTableViewController가 되도록 설정했으므로

    view는 MainTableViewController.xib (인터페이스 빌드 파일)에서 관리함

    --> 하단의 tableview는 필요X  /  삭제

     


     

    < 프로세스 정리 >

    1) 

    2) navigation contoller가 윈도우의 첫 화면으로 보여지기 위해서 UIWindow의 rootview controller를 navigation contoller와 연결

    3) navigation contoller가 자체적으로 화면에 보여줄수 있는 navigation bar를 연결

    4) navigation bar밑에 붙어있는 실질적 데이터(content view)인 table view는 MainTableViewController가 관리 

    5) navigation contoller에는  rootview controller의 이름으로 MainTableViewController가 연결됨

     

     

    <navigation contoller와 MainTableViewController의 차이>

    * navigation contoller는 navigation bar가 포함된 content view 전체를 관리

    * MainTableViewController는  content view에 해당하는 table view만을 관리

     

    content view에 해당하는 table view는 인터페이스 빌더 파일(.xib) 안에 들어있음

    댓글

Designed by Tistory.