https://developer.apple.com/documentation/uikit/uistoryboard
"An encapsulation of the design-time view controller graph represented in an Interface Builder storyboard resource file."
인터페이스 빌더 스토리보드 리소스 파일에서 표현되는 디자인 타임 뷰 컨트롤러 그래프의 캡슐화입니다.
@MainActor class UIStoryboard : NSObject
UIStoryboard
객체는 앱 내에 존재하는 뷰 컨트롤러들의 아카이브된 버전을 관리합니다. 디자인 시점에 뷰 컨트롤러의 컨텐트를 시각적으로 설계하고, Xcode는 앱 번들에서 스토리보드 파일 내에 있는 인터페이스 재생성에 필요한 데이터를 저장합니다. 새로운 뷰 컨트롤러를 코드 작성으로 생성하고자 한다면, 우선 UIStoryboard
객체를 생성하고 적합한 이름 및 번들 정보를 구체화해야 합니다. 이후 원하는 특정 뷰 컨트롤러를 인스턴스화하기 위해 해당 객체를 사용하면 됩니다.
인스턴스화가 진행되는 동안 UIStoryboard
는 init(coder:)
메소드를 사용하면서 코드로 뷰 컨트롤러를 생성합니다. 스토리보드는 이 메소드에 뷰 컨트롤러의 데이어 아카이브를 전달하고, 그러면 이 메소드는 뷰 컨트롤러 및 뷰 컨트롤러의 뷰 상태를 재생성하기 위해 해당 데이터를 사용합니다. 뷰 컨트롤러에 대해 커스텀 초기화 메소드를 가지고 있다면, 제공한 블록을 사용해서 뷰 컨트롤러를 인스턴스화하길 스토리보드에게 요청할 수 있습니다. 뷰 컨트롤러에 필요한 모든 추가적인 데이터를 전달하면서 커스텀 초기화 메소드를 호출하기 위해 이 블록을 사용할 수 있습니다.
세그가 일어나는 동안 뷰 컨트롤러 사이에 데이터를 전달합니다. 그리고 세그 발생 시 코드 내용으로 제어합니다.
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
다음에 표시할 가장 적합한 뷰 컨트롤러를 동적으로 선택하는 언와인드 세그를 스토리보드 파일에서 설정합니다.
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
두 뷰 컨트롤러 사이에서 시각적 전환을 준비하고 수행하는 객체입니다.
https://developer.apple.com/documentation/uikit/uistoryboardsegue
https://velog.io/@panther222128/UIStoryboardSegue
언와인드 세그에 대한 정보의 캡슐화입니다.
https://developer.apple.com/documentation/uikit/uistoryboardunwindseguesource
https://velog.io/@panther222128/UIStoryboardUnwindSegueSource