yoogail105 / KkokkoSwift

꼬리에 꼬리를 무는 swift 개념 정리

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

# 화면전환: 세그웨이Segueway

yoogail105 opened this issue · comments

# 화면전환: 세그웨이Segueway

  • segue: 스토리보드에서 뷰 컨트롤러 사이의 연결 관계 및 화면 전환을 관리
  • 화면 전환을 위한 소스 코드가 필요하지 않음
    • 세그웨이가 스토리보드의 연결 정보를 이용하여 대상 뷰 컨트롤러의 인스턴스 자동으로 생성
  • 화면 전환의 관계를 화살표 → 로 표시
    • 한 방향으로만 화면 전환 가능

출발지에 따른 세그웨이의 종류 ?

  • 매뉴얼 세그웨이: 뷰컨트롤러에서 출발
    • 버튼 터치 액션과 같은 트리거가 없기 때문에 추가 소스코드를 작성해야 한다.
    • performSegue(withIdentifier:sender:)
    • 소스코드에서 적절한 시점에 이 메소드를 호출하면 세그웨이 실행 → 화면 전환
  • 액션/트리거 세그웨이: 버튼 등으로부터 출발
    • 터치 이벤트 등이 세그웨이 실행으로 이어지기 때문에, 추가 소스 코드 필요 X
    • show: 내비게이션컨트롤러 통해 화면 전환
      • 내비게이션 컨트롤러 없이 show타입 세그웨이 이용 → presentModally 방식으로 전환
    • presentModally: 내비게이션컨트롤러 사용 X

세그웨이로 이동한 화면 복귀하기

  • 이전 화면의 방향으로 다시 세그웨이를 만든다? → ❌
    • 세그웨이는 목적지의 뷰 컨트롤러의 인스턴스를 자동으로 생성한다.
    • 이전화면의 인스턴스는 이미 존재, 중복되기 때문에 안된다.
  • 세그 웨이의 전환 방식에 따라, 알맞은 화면 전환용 메서드를 호출한다.
    • present방식: dismiss(animated:)
    • navigationController이용: popViewController(animated:)
  • Unwind Segue 이용
    • 스토리보드 뷰의 도크 바 3번째 버튼 Exit
      • 현재 화면을 종료, 이전 화면으로 돌아가는 Unwind segue 구현할 수 있음
    • VC2의 Exit버튼을 VC2 자신의 이전 버튼과 연결

🔖 참고

  • 꼼꼼한 재은씨의 Swift: 기본편