[Swift] 화면 전환 개념

HongDuHyeon·2023년 5월 3일
0
post-thumbnail
closure 복습! 복습! 복습!

화면 전환 개념

보통 앱들은 단일 화면으로 구성된 앱들이 거의 없다.
여러화면으로 구성되어 있고 앱내에서 여러 화면으로 구성 되어 있다.

앱 내에선 그럼 어떻게 할까?

크게 두가지로 나뉜다.
알아보자.

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

1. View Controller의 View 위에 다른 View를 가져와 바꿔치기

  • 되도록이면 사용하지 않아야 한다.
  • 메모리 누수가 있을 수도 있어서 거의 사용하지 않는다.

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

  • presentation 방식이라고도 부른다.
  • 기존 View Controller에 새로운 View Controller를 덮는 방식이다.
    func present(_ viewControllerToPresent: UIViewController,
    	animated flag: Bool,
        completion: (() -> Void)? = nil)
  • 첫번째 파라미터엔 새로운 화면으로 이동하고자 하는 화면의 View Controller 인스턴스를 넣어주면 된다.
  • 두번째 파라미터엔 이동할 때 애니메이션을 사용할지 안할지 Bool값을 넣어주면 된다.
  • 세번째 파라미터엔 closure를 전달받는데, 화면 전환이 완료되는 시점에 맞춰 completion closure가 작동한다.
  • 화면 전환은 비동기 방식으로 작동하기 때문에 화면 전환이 완료된 후 처리해야할 로직이 있다면 comletion 안에 로직을 작성해주면 된다.
  • dismiss라는 이전 화면으로 돌아가게 해주는 메소드도 있다.
func dismiss(animated flag: Bool,
	completion: (()-> Void)? = nil)
  • 이전 화면으로 돌아가기 때문에 View Controller 인스턴스를 인자로 받지 않는다.
  • 첫번째 파라미터엔 애니메이션 적용 여부이다.
  • 두번째 파라미터엔 closure를 받는데, 이전 화면으로 돌아가는게 완료되면 작동할 로직을 호출할 수 있다.

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

  • 계층적인 성격을 띄는 컨텐츠 구조를 관리하기 위한 Controller이다.
  • View Controller의 전환을 직접 관리하고 앱에 Navigation 정보를 표시하며, Navigation 스택으로 자식 View Controller를 관리한다.
  • Navigation Controller는 선입후출 방식으로 나중에 들어온 화면이 제일 먼저 나가는 방식이다.
func pushViewController(_ viewController: UIViewController,
	animated: Bool)
  • pushViewController를 사용해서 Navigation stack에 화면을 추가하고 popViewController를 사용해서 Navigation stack에 화면을 제거한다.
func popViewController(animated: Bool) -> UIViewController?

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

  • segueway에는 두개의 View Controller 사이에 연결된 화면 전환 객체를 의미한다.

  • storyboard를 이용해 출발지와 목적지를 직접 지정하는 방식을 segueway를 이용한 화면 전환 방식이라고 한다.

  • segueway를 사용하면 따로 코드를 작성하지 않고 화면을 전환할 수 있는게 특징이다.

    • Action Segueway
      • 출발점이 버튼일 경우 Action Segueway, trigger Segueway라고 한다.
      • 버튼 터치와 같은 트리거 액션들이 Segueway와 바로 연결이 된다. 그래서 소스 코드를 추가하지 않아도 화면 전환을 할 수 있다.
    • Action Segueway 종류
      • Show
      • Show Detail
      • Present Modally
      • Present As Popover
      • Custom
    • Manual Segueway
      • 출발점이 View Controller 자체인 경우 Manual Segueway라고 한다.
      • 적절한 시점에 perform Segue를 호출하면서 Segueway가 실행되어 화면 전환이 일어난다.

Storyboard를 통해 전환하는 방식

profile
마음이 시키는 프론트엔드.. RN과 IOS를 곁들인..

0개의 댓글