일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로퍼티 관찰자
- cancelAsyncWrite
- Realm
- Git
- beginAsyncWrite
- Background
- Optional Chaining
- RawValue
- 패스트캠퍼스후기
- 문자열 보간법
- SeSAC
- 옵셔널 체이닝
- xcode
- 기본문법
- 직장인인강
- 직장인자기계발
- ios
- 함수
- TableView
- Threading
- enum
- 인스펙터
- 패스트캠퍼스
- 독학
- 패캠챌린지
- userDefaults
- switch
- 열거형
- swift
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- Today
- Total
아삭아삭 iOS 개발
[Swift 독학] 패스트캠퍼스 챌린지 46일차_화면 전환 방법 본문
* 화면 전환 방법 작게 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?? 이라는 메서드를 호출하면서 세그웨이가 실행되면서 화면전환 일어남
본 게시물은 개인 공부 기록용이므로 내용에 오류가 있을 수 있습니다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Swift' 카테고리의 다른 글
[Swift 독학] 패스트캠퍼스 챌린지 48일차_ ViewController Life Cycle (0) | 2022.03.12 |
---|---|
[Swift 독학] 패스트캠퍼스 챌린지 47일차_화면 전환 구현 (0) | 2022.03.11 |
[Swift 독학] 패스트캠퍼스 챌린지 45일차_ UINavigationController (0) | 2022.03.09 |
[Swift 독학] 패스트캠퍼스 챌린지 44일차_Content hugging&Compression resistance (0) | 2022.03.08 |
[Swift 독학] 패스트캠퍼스 챌린지 43일차_ IBOutlet & IBAction (0) | 2022.03.07 |