Development Tip

Xcode의 스토리 보드 참조, 어디에서 사용해야합니까?

yourdevel 2020. 11. 24. 19:59
반응형

Xcode의 스토리 보드 참조, 어디에서 사용해야합니까?


Xcode7 beta라는 이름의 새 컨트롤이 하나 있습니다 Storyboard Reference. 아래는 이미지입니다.

여기에 이미지 설명 입력

설명은 다음과 같습니다.

외부 스토리 보드의 뷰 컨트롤러에 대한 자리 표시자를 제공합니다. 이 자리 표시 자에 연결된 Segues는 런타임에 참조 된 뷰 컨트롤러를 인스턴스화합니다.

그래서 질문은

  1. 어떤 상황에서 이것을 사용해야합니까?
  2. 이것은 segue를 통해 두 스토리 보드의 뷰 컨트롤러를 연결하는 데 사용됩니까?
  3. 이 접근 방식이 다른 스토리 보드의 VC를 프로그래밍 방식으로 대체하는 데 사용됩니까?
  4. 이전 iOS 버전 (iOS 9 이전)에서 작동합니까?

업데이트 (2016 년 1 월 6 일) : 스토리 보드 참조를 사용하는 것이 매우 간단하며 훨씬 더 깨끗하고 유지 관리가 가능한 방식으로 스토리 보드를 사용하는 데 도움이 될 것임을 빠르게 언급하고 싶습니다 . 이에 대한 좋은 사용 사례는 예를 들어 UITabBarController여러 탭이있는 경우입니다. Main.Storyboard스토리 보드 참조를 사용하여 각 탭과 개별 스토리 보드 에 대한 링크 에 스토리 보드를 하나씩 만드십시오 . 사용법은 매우 간단합니다. 스토리 보드 참조를 만든 후에 는 링크하려는 개별 스토리 보드 파일 이름 만 제공하고 해당 개별 스토리 보드 내 에서 초기보기 컨트롤러를 설정하면 됩니다. 그게 다야! :)

이제 다음은 @YogeshSuthar의 질문에 대한 원래 답변 입니다.

  1. 앱에서 여러 스토리 보드를 사용하는 경우에 사용할 수 있습니다. 지금까지는 프로그래밍 방식으로 다른 스토리 보드에서 뷰 컨트롤러를 인스턴스화해야했습니다. 이제는이 참조를 사용하고 동일한 스토리 보드의 뷰 컨트롤러와 마찬가지로 스토리 보드에서 segue를 만들 수있는 것처럼 보입니다.

  2. 예, 현재 스토리 보드의 하나의 뷰 컨트롤러를 다른 스토리 보드의 다른 뷰 컨트롤러와 연결하고이 둘 사이에 segue를 만들 수 있습니다.

  3. 예, 이것은 프로그래밍 방식으로 다른 스토리 보드에서 뷰 컨트롤러를 인스턴스화하는 데 이전에 사용되었던 코드를 대체하는 데 사용할 수 있습니다.

  4. [@AlexBasson에 대한 업데이트] Storyboard 참조는 iOS 8 , OS X 10.10watchOS 1에 배포 할 수 있습니다 .


스토리 보드 참조 사용법

다른 답변은 내 질문에 맞습니다.

그리고 Storyboard Reference코드를 작성하지 않고 segue를 통해 다른 스토리 보드에서 View 컨트롤러를 여는 데 사용되는 의 사용법을 게시하고 싶습니다 . :)

단계

  1. 먼저 1 개의 새 스토리 보드를 만들고 원하는 이름을 지정합니다 (내가 이름을 지정했습니다 NewStoryboard).
  2. 뷰 컨트롤러 (또는 임의의 뷰 컨트롤러)를 NewStoryboard.
  3. Storyboard ID(내가 준 newVC) .

여기에 이미지 설명 입력

  1. 메인 스토리 보드로 돌아갑니다.
  2. Storyboard Reference이 스토리 보드의 드래그 앤 드롭 컨트롤입니다.
  3. 선택 Storyboard Reference제어를 선택합니다 Attributes Inspector.
  4. 새 스토리 보드를 선택합니다 NewStoryboard.
  5. newVC( NewStoryboard스토리 보드 에서 사용한) 참조 ID를 제공합니다 .
  6. Storyboard ReferenceViewController에서 segue를 통해 연결하십시오 . 이제 코드를 작성하지 않고 segue를 통해이 VC를 엽니 다. :)

여기에 이미지 설명 입력


  1. 이전 iOS 버전 (iOS 9 이전)에서 작동합니까?

아마 아닐 것 같습니다 : /

스토리 보드 참조에는 watchOS 용 iOS 9.0, OS X 10.11 또는 WatchKit 2.0 이상을 대상으로하는 앱이 필요했습니다.

출처 : watchOS 개발자 라이브러리 : 다른 스토리 보드에 참조 추가


  1. 이전 iOS 버전 (iOS 9 이전)에서 작동합니까?

해결 방법은 다음과 같습니다 (Xcode 8 및 iOS 8.2에서 확인).

  1. 탭의보기 컨트롤러에서 프레임이 전체보기를 차지하는 컨테이너보기를 추가합니다 (필요한 경우이를 수행하기위한 제약 조건 추가).
  2. 컨테이너보기에 의해 자동으로 추가 된 임베디드보기 컨트롤러를 삭제하십시오.
  3. 스토리 보드 참조를 만들고 컨테이너보기에서이 참조로 포함 세그를 드래그합니다.
  4. 아직하지 않았다면 스토리 보드를 만들고 여기에 스토리 보드 참조를 할당합니다.
  5. 새 스토리 보드에서는 첫 번째 View Controller를 선택하고 Attributes Inspector의 Simulated Metrics-> Bottom Bar에서 표시 할 탭 표시 줄 (예 : 반투명)을 선택하여 탭 표시 줄의 모양을 시뮬레이션 할 수 있습니다.

스크린 샷


iOS 8이 설치된 Xcode 7에서 스토리 보드 참조를 테스트했지만 실패했습니다.

Illegal Configuration: Storyboard References cannot be the destinations of 
relationship segues prior to iOS 9.0

Xcode 릴리스에 대한 마지막 iOS 개발자 라이브러리 문서 에이 노트도 추가되었습니다 ( 현재 버전 : Xcode 7.2.1) .

Storyboard References는 이제 iOS 8, OS X 10.10 및 watchOS 1에 배포 될 수 있습니다.

이는 좋은 소식을 의미하지만 다음 사항을 명심하십시오.

스토리 보드 참조는 iOS 9.0 이전의 관계 세그먼트의 대상이 될 수 없습니다.

So if you are aware of these two bullet points, then you are good to go :)


When we have a big application with too many screens and modules, Dividing storyboard into multiple storyboards as per modules is a good and convenient option. While using multiple storyboard, if you need to connect segue between viewControllers of different storyboard, you can use this control. If you are using this control, No need to do coding stuffs like instantiateViewController and pushViewController etc. You can just connect the segue, perform the segue and if you need you can use prepareForSegue.

Let's discuss your all questions :

  1. In which situations should we use this? - I think you have find your answer above.

  2. Is this used to connect two storyboard's view controllers via segue? - YES

  3. 이 접근 방식은 프로그래밍 방식으로 다른 스토리 보드의 VC를 대체하는 데 사용됩니까? - 이 컨트롤을 사용하는 동안 코딩과 관련이 없음

  4. 이전 iOS 버전 (iOS 9 이전)에서 작동합니까? - 작동 할 수 있지만 시도하지 않았습니다.

참고 URL : https://stackoverflow.com/questions/30772145/storyboard-reference-in-xcode-where-should-we-use-it

반응형