4.5.4 📌 커스텀 세그웨이
앱을 제작하다보면 기본적인 기능의 세그웨이로는 원하는 기능을 충분히 구현하기 어려운 경우가 있다.
이럴 때 UIStoryboardSegue 클래스를 서브클래싱하여 새로운 기능을 갖춘 세그웨이 객체를 정의할 수 있다.
이를 커스텀 세그웨이 (Custom Segue)라고 부른다.
커스텀 세그웨이 실습
커스텀 세그웨이를 만들기 위해서는 UIStoryboardSegue 클래스를 상속받는 클래스를 만들어야 한다.
import UIKit
class NewSegue: UIStoryboardSegue {
override func perform() {
let srcUVC = self.source
let desrUVC = self.destination
UIView.transition(from: srcUVC.view, to: desrUVC.view, duration: 2, options: .transitionCurlDown)
}
}
NewSegue.swift 파일을 생성하고 UIStoryboardSegue를 상속받는 클래스를 만든다.
세그웨이의 실행을 처리하는 메소드는 perform()메소드이기 때문에 perform메소드를 override한다.
let srcUVC = self.source
let desrUVC = self.destination
세그웨이의 출발지와 목적지 뷰 컨트롤러 인스턴스를 각각의 변수에 할당하는 코드이다.
속성의 타입은 UIViewController이다.
UIView.transition(from: srcUVC.view, to: desrUVC.view, duration: 2, options: .transitionCurlDown)
양쪽 사이의 화면 전환 방식을 정의해주는 코드이다.
UIView 객체의 전환 기능을 사용하는 방법이다. transit()은 타입 메소드이기 때문에 UIView 클래스의 인스턴스를 생성하지 않고
호출할 수 있다.
각각의 파라미터는 다음과 같다.
from : 출발지 뷰
to : 목적지 뷰
duration : 화면 전환에 소요되는 시간 ( 단위 : 초 )
options : 애니메이션 전환 옵션
화면 전환이 완전히 끝난 후 처리할 내용이 있다면 completion 파라미터를 추가하여 클로저나 함수를 파라미터로 전달할 수 있다.
첫 번째 뷰 컨트롤러에 버튼을 만들고 액션 세그웨이를 연결한다.
연결은 Custom으로 연결한다.
커스텀으로 연결하면 위와 같은 아이콘이 보이게 된다.
세그웨이를 클릭하고 우측에서 작성한 NewSegue를 선택한다.
실행결과
'Swift > 꼼꼼한 재은씨 기본편' 카테고리의 다른 글
[꼼꼼한 재은씨 기본편 Chapter 04] 화면 전환 - 전처리 메소드의 활용 (0) | 2024.07.08 |
---|---|
[꼼꼼한 재은씨 기본편 Chapter 04] 화면 복귀 - Unwind (2) | 2024.07.05 |
[꼼꼼한 재은씨 기본편 Chapter 04] 화면 전환 - 세그웨이를 이용한 전환 (0) | 2024.07.05 |