나만의 iOS 앱 개발 입문 : iOS개발 강의 흔적 남기기 3일차

박경현·2022년 3월 7일
0

화면을 전환하는 방법에 대해 적어보려고 한다 사실 강의만 듣는다고 완벽하게 이해 되는건 아니어서 다른 블로그들도 참조해서 적을려고 한다

화면 구성

Content View Controller

  • 화면을 구성하는 뷰
  • 쉽게 말하면 storyboard를 처음 열면 나오는 화면
  • 뷰를 직접 구현하고 관련된 이벤트를 처리하는 뷰 컨트롤러

Container View Controller

  • 하나이상의 child View Controller를 가지고 있다
  • 레이아웃과 화면전환을 담당한다
  • Navigation Controller와 TabBar Controller

Container View Controller 중에서도 Navigation controller를 사용해서 간단한 LED색상을 선택할 수 있는 어플을 만들거다

계층구조로 구성된 content를 순차적으로 보여주는 녀석임
간단하게 말하면 화면 -> 설정클릭 -> 설정 안에 또 다른 버튼 클릭

segue등으로 화면전환을 한다!!!
Navigation Stack은 화면이 스택에 쌓인다고 생각하면된다.

상위 카테고리에서 -> 하위카테고리로 들어간다
반대로 나올때는 하위카테고리 -> 상위카테고리 순으로 나온다!!

찐 스택이라는거!!

Navigation Bar

Navigation을 사용해서 화면을 구성하면 상단에 저거 무조건 나옴
Root View 제외하고 모든 child View에는 Preivious VC라는 저게 있다 그래서 왔다 갔다 가능

화면 전환

화면 전환 방식

  • 소스코드를 통해 전환하는 방식
  • StoryBoard를 통해 전환하는 방식

자세히는 4개 방식이 있다

  • View Controller의 View위에 다른 View를 가져와 바꿔치기 -> 이거 최악!
    메모리 누수의 위험이 있어서
  • View Controller에서 다른 View Controller를 호출하여 전환하기
  • Navigation Controller를 사용하여 화면 전환하기
  • 화면전환용 객체 세그웨이(Segueway)를 사용하여 화면 전환하기

View Controller에서 다른 View Controller를 호출하여 전환하기

현재 view에서 이동할 대상의 view를 직접호출하여 표시하기!! -> 프레젠테이션 방식
원래 view에서 호출한 view를 덮는거다!!

present함수에 첫 번째 인자로는 이동할 화면의 View Controller 넘겨주기
두 번째 인자로는 flag 즉 애니메이션 효과를 사용해서 왔다갔다 할지
세 번째 인자로는 completion이고 클로저를 호출한다
이 안에 많은걸 넣어도 무방함
=> 화면 전환이 끝난 후에!!

오른쪽의 dismiss는 기존의 덮고 있던 view를 뺀다고 생각하면 됨

Navigation Controller를 사용하여 화면 전환하기

계층적인 성격을 띄고 있다
선입후출 방식이다 -> pushViewController 를 사용해서 스택처럼 쌓기

화면전환용 객체 세그웨이(Segueway)를 사용하여 화면 전환하기

스토리보드를 통해 출발지와 목적지를 직접 지정 가능!!
코드 사용 안해도 화면 전환이 가능하다

  • Action Segueway
    출발점이 Button, 셀 등인 경우는 이걸 사용

  • Manual Segueway
    출발점이 viewController 그 자체일때는 이 녀석

Action Segueway 종류

  • Show -> 가장 일반적인 세그웨이 네비게이션 컨트롤러 사용시 뷰가 네비게이션 스택에 쌓이게 된다
  • Show Detail -> split View에서 사용하는 녀석 iPhone에서는 show와 동일하게 작동하지만 iPad에서는 split View 형태(마스터-슬래이브??) 로 작동한다

아이패드 메세지 앱인데 메세지 내용이 오른쪽에 나옴!!
오른쪽에 나오는게 슬레이브임! 즉 split ( 분할하다) 구조로 사용됨

  • Present Modally -> 이전 viewController 덮으면서 나옴
  • Present As Popover -> 아이패드에서 사용 팝업창 띄울때 사용
  • Custom -> 세그웨이를 커스텀
profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글