Storyboard를 여러개로 나누어 관리하는 방법

0

약간 복잡한 화면을 가진 앱을 만들다보면 뷰가 많아지기 때문에 하나의 스토리보드(Storyboard)로 만들기가 어려워진다. 이런 경우 Storyboard Reference를 사용하여 스토리보드를 나누고 관리하는 방법을 간단하게 설명해본다.

1) 우선 Tabbed Application으로 새 프로젝트를 만들고 자동으로 생성되는 First View, Second View는 제거한다.

multisb1

2) 다음으로 탭용으로 사용할 스토리보드 파일을 추가한다. [Command]+[N]키를 누르면 바로 신규 추가화면이 나온다. 이 예제에는 탭을 3가지로 구성하기 때문에 3개의 스토리보드 파일을 만들었다. A, B, C형태로 간단하게 만들었다. 다음으로 요소 목록에서 [Storyboard Reference]를 3개 설치한다.

multisb2

3) 다음으로 Storyboard Reference에 스토리보드를 설정한다. 3가지 모두 동일하게 설정한다. Storyboard항목은 각각 A, B, C순서대로 설정한다.

multisb3

4) 다음으로 [Control]키를 누른 상태에서 드래그하면서 Storyboard Reference에 Segue를 연결하는데 연결시 “Relationship Segue”의 [view controllers]를 선택한다.

multisb4

multisb5

5) 분할된 스토리보드를 설정하자. View Controller를 화면별로 추가하고 “View Controller”항목중 [Is Initial View Controller]를 체크한다. 그리고 Tab Bar Controller에 연결되어야 하기 때문에 [Tab Bar Item]요소를 화면선택할 경우 바꿀 수 있도록 구성한다. 다음으로 화면 구분을 위해 Label 요소를 하나 추가해서 화면별로 구분 텍스트를 A, B, C로 넣었다. 3개 화면은 모두 동일하게 구성하자.

multisb6

만약 특정 탭을 앱이 실행될 때 처음 나오는 화면을 변경하고 싶다면 아래와 같이 AppDelegate.swift에서 selectedIndex로 변경이 가능하다.

결과화면

multisb7

[참고] 소스코드에서 화면 전환하는 방법

같은 스토리보드 뷰로 전환되는 경우

스토리보드에서 전환 대상 뷰를 선택하고 Identity의 스토리보드 ID에 임의의 이름을 설정한다. withIdentifier: “”에 설정한 이름을 넣는다.

 

다른 스토리보드 뷰로 전환되는 경우

전환대상 뷰의 [Is Initial View Controller]를 체크해두고 name: “”으로 전환하려는 스토리보드명을 넣고 설정한다.

 

 

Facebook Comments

No more articles