-
iOS - Storyboard file 추가하는 방법Programming/iOS 2021. 12. 15. 01:43
안녕하세요 BeePeach입니다 :)
오늘은 Storyboard file을 새로 만들고 다른 storyboard와 연결하는 방법에 대해서 공부해보도록 하겠습니다.
Storyboard를 추가하는 방법은 두 가지가 있습니다.
- New file로 새로운 storyboard file을 추가시키는 방법
- 이미 추가되어 있는 ViewController를 새로운 storyboard로 refactor 하는 방법
그럼 하나하나씩 살펴볼까요?!?
새로운 storyboard file 추가하기
먼저 New File로 storyboard file을 생성하고 직접 연결을 해보는 방법부터 보겠습니다.
1. 먼저 Cmd + N 또는 왼쪽의 project navigator에서 NewFile로 Storyboard를 추가합니다.
2. 추가 시켰다면 원하는 이름과 추가시킬 Bundle을 잘 설정합니다. 가끔 Bundle설정이 잘못되는 경우가 있으므로 원하는 프로젝트 폴더에 잘 들어가 있는지 확인합니다.
3. 생성이 됐으면 Main(또는 연결하고자 하는 Storyboard)로 이동하여 object library에서 storyboard Reference를 추가해줍니다.
4. 위와 같이 Canvas에 reference가 추가된것을 확인할 수 있습니다. 그리고 reference를 클릭하고 오른쪽에 attributes inspector를 보면 어떤 Storyboard와 연결할 것인지?? 그리고 그 안에 어떤 viewController와 연결할 것인가를 지정할 수 있습니다. ReferenceID를 설정하지 않으면 해당 storyboard의 initial viewController로 설정됩니다.
저는 Seconde Stroryboard의 initial viewController와 연결하도록 하겠습니다.
5. 이제 어떻게 화면전환을 할지 정해야 합니다.
이 부분은 segue와 관련된 부분이기 때문에 자세한 설명은 Segue 포스팅에서 다루도록 하겠습니다.
저는 button을 생성하고 action segue로 화면 전환을 해보도록 하겠습니다.
control + 드래그 혹은 오른쪽 클릭으로 button -> storyboard reference로 드래그하여 Present Modally로 연결하겠습니다.
그리고 ModalPresentation은 full Screen으로 지정하겠습니다.
6. New File로 storyboard를 생성하면 initial ViewController가 지정이 되어있지 않기 때문에 직접 지정을 해줘야 합니다.
Second storyboard로 돌아와서 Attributes Inpsector에서 Is Initial View Controller를 체크해줍니다.
만약 Initial View Controller가 없다면 위와 같은 에러가 발생하게 됩니다.
이제 우리가 원하는 구현이 완료됐습니다.
결과물은 당연히 기존에 화면 전환과 똑같습니다. 달라진 점은 두 개의 storyboard에 있는 viewController를 연결했다는 점입니다.
ViewController를 새로운 storyboard로 refactor 하는 방법
이번에 사용해볼 방법은 이미 추가되어 있는 ViewController를 새로운 storyboard로 refactor하는 방법입니다.
진행 방식은 거의 동일하고 이미 존재하는 viewController를 옮긴다는 점만 차이가 있습니다.
1. 새로운 storyboard로 옮길 viewController를 선택한 후에 상단 메뉴바에 Editor -> Refactor to Storyboard를 선택합니다.
꼭 옮길 ViewController를 선택한 후에 진행해야 합니다.
2. NewFile과 똑같은 창이 나옵니다. Bundle 설정에 유의하면서 storyboard를 추가해주면 됩니다.
이후 작업은 동일합니다.
Storyboard Reference를 추가해주고 연결할 storyboard를 선택해주면 됩니다.
하지만 이번에는 위의 4번 순서에서 Referenced ID를 InitalViewController가 아닌 storyboardID를 이용하여 직접 설정해주도록 하겠습니다.
이렇게 하면 Third Storyboard에서 initial View Controller를 따로 설정해주지 않아도 됩니다.
ViewController를 클릭하고 Identity Inspector를 보면 Storyboard ID가 있습니다.
여기에 원하는 이름을 적어주면 됩니다. 그리고 이 ID를 storyboard reference의 Referenced ID에 입력해주면 됩니다.
이렇게 지정해주면 실행해보면 Third stroyboard의 InitialViewController를 설정하지 않았어도 에러 없이 실행됩니다.
참고자료
728x90'Programming > iOS' 카테고리의 다른 글
iOS - Storyboard Merge Conflict (0) 2022.01.30 iOS - Storyboard에서 만든 VC를 코드로 접근하는 방법 (0) 2022.01.25 iOS - Storyboard 살펴보기 (0) 2021.12.14 iOS - Foundation (0) 2021.10.15 iOS - Cocoa Touch (0) 2021.10.15