일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- String
- struct
- 이니셜라이저
- 스위프트
- tuist
- instance
- enum
- type
- Unicode
- 코딩테스트
- Foundation
- Method
- 디자인패턴
- init
- interpace
- Class
- Protocol
- initializer
- Xcode
- Terminal
- extension
- Swift
- initalizer
- delegate
- optional
- Git
- property
- UIKit
- url
- IOS
Archives
- Today
- Total
아리의 iOS 탐구생활
[UIKit/iOS] Storyboard Reference 본문
반응형
앞서 스토리보드의 장단점을 살펴보자.
# Storyboard 장점
- ViewController 간 연간 관계를 한눈에 볼 수 있다
- ViewController의 형태를 시각적으로 표현해줘서 UI가 어떻게 생겼는지 확인할 수 있다.
- 컨트롤 생성 시 Drag & Drop으로 간단히 생성할 수 있다.
# Storyboard 단점
- Git Marge 시 Storyboard에서 충돌이 발생함
- 스토리보드에 여러개의 ViewController가 추가되면 스토리보드 실행이 느려지고 심지어 Xcode가 멈춰버리는 일도 발생한다.
스토리보드로 협업이 불가능한 것은 아니지만, 위와 같은 단점들 때문에 스토리보드 사용을 피하게 된다.
따라서 이러한 문제를 해결하기 위해 2가지 방법을 많이 사용하게 된다.
- 스토리보드를 사용하지 않고 100% 코드로 UI 개발
- One Storyboard, One ViewController(하나의 스토리보드에 하나의 뷰 컨트롤러만) = 스토리보드 나누기
따라서 Storyboard Reference는 스토리보드를 나눌 때, 혹은 Tabbar를 사용할 때 주로 활용할 수 있다.
One Storyboard, One ViewController를 실현해보자!
# 스토리보드 래퍼런스를 활용하여 기존 스토리보드 분할해보기
- 연결되어있는 3개의 ViewController를 나눠보자.
- 먼저 스토리보드 파일을 만들어준다.
- 그리고 CMD + X, CMD + V를 활용하여 각 파일에 Controller를 넣어준다.
- 이후 스토리보드 ID와 Is Initial View Controller를 체크해준다.
- 체크를 해주지 않으면 에러가 발생하니까 꼭 해준다.
- 나머지 뷰로 동일한 방법으로 분할해준다.
- 메인으로 돌아가서 스토리보드 래퍼런스를 추가해준다.
- 그리고 아래처럼 매칭시킬 스토리보드를 지정해주고
- ID는 매칭할 ViewControllet의 Storyboard ID와 동일하게 맞춰준다.
- 그리고 Segue를 생성해준다.
- Segue를 활용하여 화면전환을 할 경우 아래처럼 연결해주고 Segue의 Identifier를 지정해주면 된다.
- 적용후 정상적으로 Segue를 타고 화면 전환을 하는 모습을 확인할 수 있다.
# 요약 정리
- 새로운 Storyboard 파일을 생성
- 컨트롤러를 새로 만든 Storyboard 파일에 분할해준다.
- 분할 후 컨트롤러의 Storyboard ID와 Is Initial View Controller 체크!!!!
- 그리고 스토리보드 래퍼런스를 추가한 후 Storyboard, Referenced ID를 설정한다.
- Segue를 연결한다.
반응형
'Swift > iOS' 카테고리의 다른 글
[Xcode] Tuist를 활용하여 프로젝트를 관리해보기 (2) | 2022.12.02 |
---|---|
[RxSwift/Alamofire] Alamofire를 Mocking해서 네트워크와 무관한 테스트 하기 (3) | 2022.08.14 |
[UiKit/iOS] 셀이 didSelect 되었을 때 화면 전환하기 (0) | 2022.02.06 |
[UiKit/iOS] 네비게이션 바 감추는 방법 (0) | 2022.02.06 |
[UIKit/iOS] 뷰의 재사용이란? (0) | 2022.02.06 |
Comments