
- [ ] layoutSubviews 호출 순서
- [ ] 공식문서 내용 append 하기
관련 API
init(coder:)
- 스토리보드에 의해 생성될 때 호출된다.
- 이 시점에
view
속성은 초기화되어있지 않다.
- 만약 접근한다면
loadView()
가 호출되어 초기화될 것이다.
- 속성을 초기화 할수도 있다.
- [ ] 작성한 블로그 글 - init?(coder:) 란?
init(nibName:bundle)
- 독자적인 nib 파일에 의해 생성될 때 호출된다. (nib, xib 파일에 뷰컨을 따로 만들어 본적은 아직 없음)
- 두 전달인자 모두 기본값이 nil 로 설정되어있기 때문에 ViewController() 같은 호출도 가능함
- 아래와 같이 스토리보드만 분할하면 되었기에 nib 파일 단위로 분할은 필요 없었다.
- Keep in mind that if your main storyboard starts getting too big, you can split it into more storyboards. You do not need to move every view controller in a separate nib file.
<aside>
⭐ 커스텀 생성자
- 물론 편의 생성자도 가능하지만
- 새로운 전달인자를 받는 생성자도 만들 수 있다.
- 단, 조건이 있다.
- 커스텀 생성자를 만드는 순간 기본 생성자 상속은 취소된다.
- 이 때 required 생성자를 직접 정의해주어야한다.
- VC 의 required 생성자는?
required init?(coder: NSCoder)
init(test: String) {
// 생성자는 부모의 designated 생성자를 호출해야한다.
super.init(nibName: nil, bundle: nil) // nib 을 사용하거나, code-base ui 라면 사용 고려 가능!
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
</aside>
- [ ] 작성한 블로그 글 1 - init(nibName:bundle:) 과 init?(coder:) 알아보기
loadView()
- creates the view for the view controller