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

2016-10-26
23 Views

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

You may be interested

모바일 앱 아키텍처
Swift
shares11 views
Swift
shares11 views

모바일 앱 아키텍처

MJ Kim - 4월 22, 2017

이 내용은 나름대로 개발해본 내용을 토대로 정리해본 모바일 앱 아키텍처에 대한 내용이다. 이를 정리한 이유는 오래된 아키텍처부터 최근 아키텍처까지 정리해보고…

시간차를 얻는 Date Extension
Swift 3.0
shares6 views
Swift 3.0
shares6 views

시간차를 얻는 Date Extension

MJ Kim - 4월 12, 2017

사용자가 남길 내용에 대한 시간표시를 할 때 일정한 시간차를 표현해주는 경우가 있어 이에 대한 Date Extention을 정리해 보았다. [crayon-58fc0c77a0ef9309531020/]  

Swift 3.1에서 없어진 문법 정리
Swift 3.0
shares34 views
Swift 3.0
shares34 views

Swift 3.1에서 없어진 문법 정리

MJ Kim - 3월 31, 2017

Swift언어는 무엇인가 나올때마다 없어지는 것들이 있어, Swift 3.1에서 컴파일할 수 없게 된 문법내용을 정리했다. switch문을 사용하여 enum에서 protocol을 여러가지 패턴으로…