- 씬(Scene)이란? iPhone Application에서 화면 단위를 의미하며, 화면 구성은 인터페이스 빌더인 Storyboard와 코드로 작성하는 ViewController로 한다.
- 씬(Scene) 구성
- View : 콘텐츠 표시
- UIView : 콘텐츠 출력용 뷰
- UIControl : 사용자 입력 가능한 컨트롤
- UIViewController : 뷰 컨트롤러
- 씬(Scene) 작성
- Storyboard를 이용한 씬을 작성하는 경우는 인터페이스 빌더로 작성하며 동적인 변경은 불가능하다.
- ViewController를 이용한 씬을 작성하는 경우는 코드로 작성하며 동적인 변경이 가능하나 Storyboard로 작성하는 것만큼 편리하지 않다.
- 씬(Scene) 생명 주기
- 생명주기는 아래의 메소드 순으로 실행
- func viewDidLoad() : View가 로드된 후에 불려진다.
- func viewWillAppear(_ animated : Bool) : View가 만들어진 후에 불려진다.
- func viewWillLayoutSubViews() : View가 구성된 후 Screen에 나타날 때 불려진다.
- func viewDidLayoutSubViews() : View 내에 SubView를 호출하기 위한 레이아웃 반영 시에 불려진다.
- func viewDidAppear(_ animated : Bool) : View 내에 SubView를 호출하기 위한 레이아웃 반영 후에 불려진다.
- func viewWillDisappear(_ animated : Bool) : View가 사라지거나 다른 View로 대체될 시점에서 불려진다.
- func viewDidDisappear(_ animated : Bool) : View가 사라지거나 다른 View에 대체된 다음에 불려진다.
- 위 생명 주기에서 뷰 구조를 다루기 적당한 생명 주기는 View를 로드된 후인 viewDidLoad 메소드이다.
- 아웃렛 : Storyboard의 장점은 개발자가 원하는 대로 화면을 구성할 수 있다는 점이고, ViewController의 장점은 동적인 변경이 가능하다는 점으로 이를 가능하게 만드는 것이 아웃렛이다.
- 아웃렛은 뷰와 코드(프로퍼티)를 연결한다.
- Storyboard에 있는 뷰와 ViewController에서 연결된 뷰는 프로퍼티에 @IBOutlet 지시자가 붙게된다.
- 아웃렛 연결 정보
- ViewController에 에디터 왼쪽에 원으로 나타나며, 채워진 원은 뷰와 연결된 아웃렛이고, 빈 원은 뷰와 연결되지 않은 아웃렛이다.
- Storyboard에 작성된 Outlet 정보와 코드가 달라서 에러가 발생하는 경우는 Storyboard에서 에러난 뷰의 아웃렛 연결 정보를 삭제한다.
출처 : https://tacademy.skplanet.com/