❗️문제 상황
- 스토리보드에서 다음 화면으로 이동할 때 스토리 보드 파일들을 각각 분리하기 위해 스토리보드 레퍼런스를 사용했다.
- 스토리보드를 생성하면서 inspector창에서
Inherit Module From Target
을 체크하지 않은 실수를 했다.

❗️원인
- 스토리 보드를 생성할 때 inspector창에서
Inherit Module From Target
을 체크하지 않은 경우 에러 발생
.swift파일
에서 storyboard와 연결되어 있던 @IBoutlet파일
이 삭제되어 storyboard에만 존재하는 경우 에러 발생
❗️해결 방법
- 스토리 보드 생성할 때
Inherit Module From Target
을 우선적으로 체크
스토리보드를 생성할 때 초기 세팅:
- 뷰컨트롤러 연결해주기
- (스토리보드 레퍼런스를 사용하는 경우) identifier 추가
- Inherit Module From Target`을 체크
@IBoutlet
을 사용할 때는 우선적으로 연결을 꼭 끊어주고 파일을 삭제하거나 변수 지우기
❗️힘들었던 점 & 나의 생각
- 협업을 하면서 스토리보드를 사용하니 생각보다 고려해야 할 상황들이 많이 발생했다.우선 많은 화면들을 스토리보드로 작성하다 보니 각각의 스토리보드 파일의 수가 많아졌고, 스토리보드를 설정하는 과정과 뷰컨트롤러를 연결해주는 과정에서 많은 실수가 발생했다.
- 스토리보드를 생성하고
identifier
를 추가해주고, Inherit Module From Target
을 체크해주고, 뷰컨트롤러 파일을 생성하고 스토리보드와 연결해주고, 심지어 각각의 스토리보드를 파일로 따로 분리하기 위해 Stroyboard Conference를 생성하고 연결해주고... 굉장히 많은 폴더와 파일들이 생성되었고 그러다보니 화면별로 파일을 구분하는 것에도 시간이 꽤 걸리기 시작했다.
- 앞으로 협업을 하며 각자 구현해야 하는 화면의 수가 많을 때는 가급적 코드로 화면을 구성하는 것이 더 효과적일 것이다. 다른 사람과 함께 하면서 발생할 수 있는 문제들과 각자가 할 수 있는 실수들의 경우가 더 적을 것이라 판단이 된다.
💡 스토리 보드를 이용해 협업을 할 때는 진짜 서로의 화면을 각각 나누어 알아서 관리하고 남의 파일과 폴더는 최대한 건드리지 않는 것이 좋다. 그게 아니라면 마음 편하게 코드로 프로젝트를 시작하자..ㅎ
❗️참고 자료
[iOS - swift] storyboard 에러- 1. NSUnknownKeyException, this class is not key value coding-compliant for the key // 2. Unexpectedly found nil while implicitly unwrapping an Optional value