UIStoryboardSegue

Panther·2021년 8월 14일
0

https://developer.apple.com/documentation/uikit/uistoryboardsegue

"An object that prepares for and performs the visual transition between two view controllers."

두 뷰 컨트롤러 사이에서 시각적 전환을 준비하고 수행하는 객체입니다.

Declaration

@MainActor class UIStoryboardSegue : NSObject

Overview

UIStoryboardSegueUIKit에서 사용 가능한 표준 시각적 전환을 지원합니다. 스토리보드 파일에서 뷰 컨트롤러 사이의 커스텀 전환을 사용하기 위해 서브클래싱할 수도 있습니다.

세그 객체는 전환에 관여하는 뷰 컨트롤러들에 대한 정보를 포함합니다. 시각적 전환 발생 전에 세그가 시도되면, 스토리보드 런타임은 현재 뷰 컨트롤러의 prepare(for:sender:) 메소드를 호출합니다. 이는 보여질 뷰 컨트롤러에 모든 필요한 데이터를 전달할 수 있도록 해줍니다.

세그 객체를 직접 생성하지 않아야 합니다. 대신 스토리보드 런타임은 스스로 두 뷰 컨트롤러 사이에서 세그를 수행할 때 세그 객체를 생성합니다. 원하는 경우 UIViewControllerperformSegue(withIdentifier:sender:) 메소드를 사용해서 코드 작성을 통해 세그를 초기화할 수도 있습니다. 이는 코드 작성으로 추가되었던 소스로부터 세그를 초기화하는 것을 통해 구현할 수 있고, 인터페이스 빌더에서는 사용이 불가능합니다.

Subclassing Notes

애플리케이션에서 뷰 컨트롤러 사이에 커스텀 전환을 제공하길 원하는 상황이라면 UIStoryboardSegue를 서브클래싱할 수 있습니다. 커스텀 세그를 사용하려면 인터페이스 빌더에서 적합한 뷰 컨트롤러 사이에 세그 라인을 생성하고 인스펙터에서 타입을 커스텀으로 설정해야 합니다. 또한, 인스펙터에서 사용하고자 하는 세그의 클래스 이름도 구체화해야 합니다.

스토리보드 런타임이 커스텀 세그를 감지하는 경우 클래스의 새 인스턴스를 생성하고, 뷰 컨트롤러 객체와 함께 설정하며, 뷰 컨트롤러에게 세그를 준비하길 요청합니다. 이후 세그를 수행합니다.

Methods to Override

커스텀 세그의 경우 오버라이드할 필요가 있는 메인 메소드는 perform() 메소드입니다. 스토리보드 런타임은 소스인 뷰 컨트롤러로부터 목적이 되는 뷰 컨트롤러에 시각적 전환을 수행할 때 이 메소드를 호출합니다. 커스텀 세그 서브클래스에서 모든 변수를 초기화할 필요가 있는 경우 init(identifier:source:destination:) 메소드를 오버라이드할 수 있고 이 메소드를 커스텀 구현에서 초기화할 수 있습니다.

Alternatives to Subclassing

세그가 추가적인 정보를 저장할 필요가 없거나 perform() 메소드 외에 제공할 무언가가 없는 경우 라면 대신 init(identifier:source:destination:performHandler:) 메소드를 사용하는 것을 고려해보시기 바랍니다.

See Also


Storyboards

Customizing the Behavior of Segue-Based Presentations

세그가 일어나는 동안 뷰 컨트롤러 사이에 데이터를 전달합니다. 그리고 세그 발생 시 코드 내용으로 제어합니다.

https://developer.apple.com/documentation/uikit/resource_management/customizing_the_behavior_of_segue-based_presentations
https://velog.io/@panther222128/Customizing-the-Behavior-of-Segue-Based-Presentations

Dismissing a View Controller with an Unwind Segue

다음에 표시할 가장 적합한 뷰 컨트롤러를 동적으로 선택하는 언와인드 세그를 스토리보드 파일에서 설정합니다.

https://developer.apple.com/documentation/uikit/resource_management/dismissing_a_view_controller_with_an_unwind_segue
https://velog.io/@panther222128/Dismissing-a-View-Controller-with-an-Unwind-Segue

UIStoryboard

인터페이스 빌더 스토리보드 리소스 파일에서 표현되는 디자인 타임 뷰 컨트롤러 그래프의 캡슐화입니다.

https://developer.apple.com/documentation/uikit/uistoryboard
https://velog.io/@panther222128/UIStoryboard

UIStoryboardUnwindSegueSource

언와인드 세그에 대한 정보의 캡슐화입니다.

https://developer.apple.com/documentation/uikit/uistoryboardunwindseguesource
https://velog.io/@panther222128/UIStoryboardUnwindSegueSource


0개의 댓글