아삭아삭 iOS 개발

[Swift 독학] 패스트캠퍼스 챌린지 46일차_화면 전환 방법 본문

Swift

[Swift 독학] 패스트캠퍼스 챌린지 46일차_화면 전환 방법

바닐라머스크 2022. 3. 10. 21:08

 

 

* 화면 전환 방법 작게 4가지
1) View Controller View 위에 다른 View 가져와 바꿔치기
   -> 되도록이면 사용하지 말아야 방법, 메모리 누수 위험이 있음

2) View Controller에서 다른 View Controller 직접 호출하여 전환하기
   - 프레젠테이션 방법이라고도 부름
   - 기존 화면을 새로 호출한 화면으로 덮는 방식
   - present라는 메서드에 이동할 화면의 View Controller 인스턴스를 넘겨주면
    
이전 화면에서 이동할 화면에 View Controller 표시됨
   - present 메서드에 번째 파라미터에는 새로 이동할 화면의 View Controller 인스턴스를 넣어주면 ,
     번째 파라미터에서는 화면을 전환할때 animation 넣을지 여부를 bool값으로 넣어주면
     번째 파라미터에서는 completion이라는 클로저를 전달받고 있는데, 이를 정의해주면 화면 전환이 완료되는 시점에 맞추어 completion 클로저가 호출되게
   - 화면전환 방식은 비동기 방식으로 처리되기 때문에 화면전환이 완료된 이후에 코드로 처리해야할 로직이 있다면 completion 클로저 안에 로직을 작성해주면
   - 이전화면으로 돌아가게 해주는 메서드(기존의 덮고 있던 화면을 걷어내는 방식 : dismiss,
     View Controller 인스턴스를 인자로 받지 않음,
     번째 파라미터에서는 이전 화면으로 돌아갈 animation 넣을지 여부를 bool값으로 넣어주면 ,
     번째 파라미터에서는 completion이라는 클로저를 전달받고 있는데 이전 화면으로 돌아가는게 완료되면  completion 클로저가 호출되게

 

3) Navigation Controller 사용하여 화면 전환하기
   - View Controller 전환을 직접 컨트롤
   - 앱의 navigation 정보를 표시하는 역할
   - Navigation Stack Child View Controller 관리
   - pushViewController : Navigation Stack 새로운 화면을 표시하는 메서드,
     번째 파라미터에는 새로 이동할 화면의 View Controller 인스턴스를 넣어주면
     번째 파라미터에서는 화면을 전환할때 animation 넣을지 여부를 bool값으로 넣어주면
   - popViewController : 이전 화면으로 돌아오는 메서드,
   번째 파라미터에서는 이전 화면으로 돌아갈 animation 넣을지 여부를 bool값으로 넣어주면

4)
화면 전환용 객체 세그웨이(Segueway) 사용하여 화면 전환하기
   - 세그웨이 객체를 사용한 화면 전환은 스토리보드를 통해 출발지/목적지를 직접 지정하는 방식
   - 따로 코드를 사용하지 않고 스토리보드만을 사용해 화면을 전환한다는 것이 특징
   - 세그웨이 종류 2 : Action Segueway, Manual Segueway
     (1) Action(trigger) Segueway
         : 출발점이 버튼, 등인 경우
         : 버튼 터치와 같은 트리거 이벤트가 세그웨이 실행으로 바로 연결됨
           -> 소스코드를 추가하지 않아도 화면 전환 기능을 구현할 있음
         : 종류 - Show, Show Detail, Present Modally, Present As Popover, Custom
     (2) Manual Segueway
         : 출발점이 View Controller 자체인 경우

         : 적절한 시점에 performseg?? 이라는 메서드를 호출하면서 세그웨이가 실행되면서 화면전환 일어남

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

본 게시물은 개인 공부 기록용이므로 내용에 오류가 있을 수 있습니다.

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.