비동기 방식: 하나의 처리가 끝나기를 기다리지 않고 다음 작업을 바로 이어서 수행하는 방식.
화면 전환은 비동기 방식으로 동작. 따라서, 화면 전환이 완전히 끝난 후에 실행해야 할 구문이 있다면 클로저나 함수 형식으로 작성하여 프레젠트 메소드의 세번째 인자값에 넣은 다음, 시스템이 알맞게 호출해주기를 기다려야 함.
present(_:animated:completion:)
프레젠트 메소드를 이용한 화면 전환: 기존의 뷰 컨트롤러(VC1) 를 그대로 둔 채, 그 위에 새로운 뷰 컨트롤러(VC2)의 화면을 덮는 방식.
VC1 에서는 presentedViewController속성을 이용하여 VC2를 참조
VC2 에서는 presentingViewController 속성을 이용하여 VC1을 참조
화면 전환시(띄울 때) 프레젠트 메소드 이용.
이전 화면으로 복귀할 때는(띄운 화면 제거) 복귀 메소드 이용: dismiss(animated:) - 기존 화면을 덮고 있던 새 화면을 걷어내는 것. 걷어낸 화면의 뷰 컨트롤러 객체는 운영체제에 의해 곧 메모리에서 해제된다.
이 때 주의 점 : 화면을 걷어내는 주체가 자기 자신이 아니다. iOS에서 화면이 사라지게 처리하는 것은 사라질 화면의 뷰 컨트롤러 자신이 아니라 자신을 띄우고 있는 이전 뷰 컨트롤러임.
메소드를 호출할 때는 다음과 같이 호출
self.presentingViewController?.dismiss(animated:)
---- 실습 중 (project name: scene-trans01)
뷰 컨트롤러를 참조하려면 스토리보드의 속성값을 이용해야 함. - > Identity -> Storyboard ID 를 변경. (ex) SecondVC
객체지향 언어에서 메모리에 올려진다는 것 = 클래스의 인스턴스가 생성된다는 것을 의미.
즉, 외형을 담당하는 스토리보드의 화면 구조와 기능을 담당하는 뷰 컨트롤러 클래스를 합쳐서 하나의 인스턴스가 만들어져야 정상적으로 화면에 표시되고 제대로 동작함.
출처: 꼼꼼한 재은씨의 swift 기본편 p159~
'iOS > iOS Swift 개발 일기' 카테고리의 다른 글
BRANDI UI 클론 (0) | 2022.05.20 |
---|---|
ios swift 오토레이아웃 (0) | 2022.05.19 |
1주차 과제) Navigator 부분 (0) | 2022.05.15 |
1주차과제) info.plist / AppProject 속성 조사 (0) | 2022.05.14 |
1주차 - UI관련 실습해야될 부분 (0) | 2022.05.14 |