본문 바로가기
iOS - 실무관련/iOS

화면전환 방법

by print_soo 2022. 3. 28.

1. 네비게이션 컨드롤러를 이용한 화면전환

  • 우선 Navigation Controller - ViewController - ViewController 형식으로 만들어준다.

  • Navigation Controller - ViewController를 segue로 "root view controller" 연결하고 첫번째 ViewController에 버튼을 놓아준다.

  • 첫번째 ViewController의 버튼과 두번째 ViewController를 segue로 "show" 연결한다.

2. 화면 일부 / 전부를 덮는 modal

  • 아래와 같이 버튼과 ViewController 두개를 구성해준다.

  • 일부만 덮는) 버튼을 두번째 ViewController와 segue로 "Present Modally" 연결해준다.

  • 전체를 덮는) 버튼을 두번째 ViewController와 segue로 "Present Modally" 연결해주고 화살표를 눌러 Presentation - FullScreen으로 바꾸어준다.

3. RootViewController로 이동

  • 아래와 같이 화면을 Navigation Controller - ViewController - ViewController로 구성해주고 "RootViewController로 이동" 버튼을 @IBAction으로 연결해준다.

  • 소스코드
import UIKit

class PresentViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    @IBAction func changeRootViewController(_ sender: UIButton) {
        self.navigationController?.popToRootViewController(animated: true)
    }

}

4. 새로운 Window 전환

  • "새로운 Window 전환" 버튼을 @IBAction으로 연결해준다.

  • 전환 할 Window의 Storyboard를 작성하고 아래의 소스코드를 작성한다.

  • 소스코드
if let vc = storyboard?.instantiateViewController(withIdentifier: "NewViewController") as? NewViewController {
            //스토리보드가 있으면 스토리보드에 SecondVC라는 이름을 가진 ViewViewController 인스턴스를 만드는데 그거의 타입은 SecondViewController이다.

vc.modalPresentationStyle = .fullScreen
//modalPresentationStyle: 어떤식으로 화면을 전환하고 싶나?

self.present(vc, animated: true)
//vc라는 화면의 애니메이션을 True로 한다,.

5. 원래 화면으로 돌아오기 - Dismiss

  • @IBAction으로 버튼을 연결하고 아래의 소스코드를 작성한다.
  • 소스코드
self.dismiss(animated: true, completion: nil)

'iOS - 실무관련 > iOS' 카테고리의 다른 글

Alamofire 관련 코드  (0) 2022.03.28
모듈화 - iOS  (0) 2022.03.28
Navigation back button custom하기  (0) 2022.03.28
TableView로 스크롤되는 UI 구성하기  (0) 2022.03.28
UserDefaults  (0) 2022.03.27