화면 이동 방법
화면을 이동하는 방법은 2가지가 있다.
1. Navigation Controller 이용 <- 권장
- 코드로 이동(Push, Pop)
- Segue 로 이동
2. 팝업창으로 이동 : 간단한 이벤트 화면(로그인, 회원가입)
- 코드로 이동(Present, Dismiss)
- Segue 로 이동
1번은 수평이동, 2번은 수직이동이다.
수직적인 이동은 간단히 떴다가 사라지는 화면으로 이해하면 좋다.
1. Navigation Controller 이용
Navigation Controller 생성 방법
Navigation Controller 가 생기고 진입점도 Navigation Controller 로 되어 있다.
여기에 뷰가 따로 있진 않고 제어하는 코드만 들어있다고 이해하자
루트뷰는 메인화면으로 지칭되어 있음!
먼저 Seque 로 이동하는 방법을 보자.
UIButton 을 생성 후, 오른쪽 화면에다가 드래그하면 Action Segue 창이 뜨며 이때 Show 를 클릭해준다.
그럼 간단하게 코드를 치지 않고도 화면이 이동되어진다.
이번엔 코드로 이동하는 방법을 알아보자.
위와 같은 화면에서 세번째 화면으로 이동해야 한다고 하자.
"코드로 이동하기" 버튼과 "뒤로 이동하기" 버튼을 코드로 다음과 같이 작성해야 한다.
import UIKit
class NvViewController2: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func onBtnNext(_ sender: UIButton) {
let NewVC = self.storyboard?.instantiateViewController(withIdentifier: "ThirdVC") as! NvViewController3
self.navigationController?.pushViewController(NewVC, animated: true)
}
@IBAction func onBtnBack(_ sender: UIButton) {
self.navigationController?.popViewController(animated: true)
}
}
여기서 ThirdVC 는 아래와 같이 세번째 화면 Storyboard ID 에다가 "ThirdVC" 라고 반드시 써줘야 한다.
코드를 보면 storyboard, navigationController 뒤에 물음표가 붙어 있는 것을 볼 수 있는데 이는 null 일 수 있으므로 옵셔널 처리해준 것이다.
'🦜 Swift' 카테고리의 다른 글
[iOS] 전역변수, 클래스간 데이터 전달 - 3 (0) | 2023.05.14 |
---|---|
[iOS] 뷰 컨트롤러의 수명 주기, 팝업창 띄우기 - 2 (0) | 2023.05.13 |
[TIL] UIView, UIViewController, Delegate (0) | 2023.05.05 |
[iOS] weak var (0) | 2023.05.04 |
[Swift] 인스턴스의 생성과 소멸 (0) | 2022.11.20 |