iOS 화면전환 및 데이터 전송정리(present)
Computer Science/Android&iOS반응형
1. present 메소드 활용
"BlueTest" 버튼을 클릭하면 동작할 함수를 다음과 같이 정의한다. 화면이동을 위한 첫번째 코드입니다. 물론 첫번째 ViewController를 위한 클래스는 정의해야 합니다.
@IBAction func moveToBlueTest(_ sender: Any){
let uvc = self.storyboard!.instantiateViewController(withIdentifier: "BluetoothTestVC")
uvc.modalTransitionStyle = UIModalTransitionStyle.coverVertical
self.present(uvc, animated: true)
}
첫번째 ViewController에서 다음과 같은 코드를 통해서 두번째 ViewController로 이동하게 됩니다.
두번째 ViewController에서 화면을 종료하기 위해서는 다음과 같은 코드를 작성합니다.
@IBAction func Close(_ sender: Any){
self.presentingViewController?.dismiss(animated: true)
}
해당 코드에서는 자체적으로 종료하는 것이 아니라, presentingViewController(즉, 현재 이 페이지를 호출하게 해준 ViewController를 통해서 화면을 닫도록 요청해야 함)를 통해서 현재 ViewController를 종료하도록 합니다.
여기서 만일 다시 self.presnet() 함수를 사용하게 되면, 화면을 닫는 것이 아니라 새로운 화면을 하나 더 만들어서 쌓게 됩니다. 메모리가 불필요하게 낭비가 되겠죠. 반드시 화면을 종료한다고 생각하고 화면을 닫아(dismiss) 해야 합니다.
반응형
'Computer Science > Android&iOS' 카테고리의 다른 글
iOS 화면전환 및 데이터 전송방식(동기 방식) (0) | 2022.08.04 |
---|---|
iOS 화면전환 및 데이터 전송방식(비동기 방식) (0) | 2022.08.04 |
iOS 화면전환 및 데이터 전송정리(Segue를 이용한 전환) (0) | 2022.08.03 |
iOS 화면전환 및 데이터 전송정리(Navigation controller) (0) | 2022.08.03 |
iOS 화면전환 및 데이터 전송정리(present without coding) (0) | 2022.08.03 |