-
iOS/Xcode 14X - NavigationController 화면 전환 방법Language/iOS,AOS 2023. 1. 18. 14:41
화면 전환 방법에는 대표적으로 네 가지 방법이 있다.
- ViewController의 view 바꿔치기
- ViewController가 다른 ViewController를 호출(present)
- NavigationViewController 사용하여 화면 전환(push)
- 화면 전환용 객체 Segue 사용
아래에서 각각의 방법으로 이동하는 법을 알아보자.
먼저 이동할 Scene에 아래와 같이 Storyboard ID를 입력한다.
ViewController의 view 바꿔치기
메인뷰를 바꿔치기 하는 방식이다, 하지만 메모리 overflow 위험이 있기 떄문에 좋은 방법이 아니라고 한다.
// ##### CASE1. ViewController의 view 바꿔치기 let mainVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "mainVC") self.navigationController?.viewControllers[0] = mainVC
ViewController가 다른 ViewController를 호출(present)
많이 애용하는 방식이고 가장 대표적인 방법이라고 한다.
다른 ViewController를 Modal로 띄우는 방법으로 다음 코드를 사용한다.
// ##### CASE2. ViewController가 다른 ViewController를 호출(present) let mainVC = self.storyboard?.instantiateViewController(withIdentifier: "mainVC") mainVC?.modalPresentationStyle = .fullScreen // 전체화면으로 보이게 설정 mainVC?.modalTransitionStyle = .crossDissolve // 전환 애니메이션 설정 // mainVC?.modalTransitionStyle = .coverVertical self.present(mainVC!, animated: true, completion: nil)
NavigationViewController 사용하여 화면 전환(push)
navigation stack에 추가 하는 방식입니다.
// ##### CASE3. NavigationViewController 사용하여 화면 전환(push) let mainVC = self.storyboard?.instantiateViewController(withIdentifier: "mainVC") // Push View Controller Onto Navigation Stack self.navigationController?.pushViewController(mainVC!, animated: true) // Pop View Controller From Navigation Stack // self.navigationController?.popViewController(animated: true) // 제스처로 뒤로가는 기능 삭제 // self.navigationController?.interactivePopGestureRecognizer?.isEnabled = false // 네비게이션 바 안보이게 (커스텀 할 경우 RootView에 한번 만들어주면 다 없어짐) // self.navigationController?.navigationBar.isHidden = true
화면 전환용 객체 Segue 사용
https://dchkang83.tistory.com/115
참조
'Language > iOS,AOS' 카테고리의 다른 글
IOS - 웹뷰 사파리 브라우저 디버깅 (0) 2023.01.20 iOS/Xcode 14X/오류 - This method should not be called on the main thread as it may lead to UI unresponsiveness (0) 2023.01.19 iOS/Xcode 14X - View Controller 생명주기 (Life Cycle) (0) 2023.01.09 iOS/Xcode 14X - 6. WebView 세팅 (0) 2023.01.09 iOS/Xcode 14X - 5. WebView 준비 (0) 2023.01.09