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

박경현·2022년 3월 7일

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

화면 구성

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개의 댓글