Swifter {Swift Developer}

메뉴

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

약간 복잡한 화면을 가진 앱을 만들다보면 뷰가 많아지기 때문에 하나의 스토리보드(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

카테고리:   Swift 3.0, Xcode

댓글

죄송하지만 댓글은 닫혀 있습니다.