[iOS] 뷰의 화면전환 방법

코르피·2022년 9월 2일
0

화면전환의 방법들

  • segue
    • 뷰를 직접 다른 뷰 컨트롤러에 연결
    • 뷰 컨트롤러와 뷰 컨트롤러를 연결
  • present
  • push

Segue

세그 방식으로 화면 전환을 하는 방법이 있다.

세그에도 두개의 방식이 있는데 먼저
첫번째는 버튼을 직접 연결해주는 방식이고
두번째는 뷰 컨트롤러를 연결해주는 방식이다.

자세한 내용

  • 연결하는 법: 첫번째
  • 버튼을 만들어서 연결하고 싶은 뷰에 연결한다. 우클릭으로 드래그 해서 연결할 수 있다.
  • 버튼을 누르면 뷰가 열린다.

  • 연결하는 법: 두번째
  • 뷰 컨트롤러에서 이동할 뷰 컨트롤러를 지정한다.

  • 연결해준 세그를 클릭해서 오른쪽 Inspectors에 이름을 지정해준다.

  • performSegue 메서드를 이용해서 화면을 이동한다.
  • 이 perform메서드가 실행되기 전에 항상 prepare 메서드가 실행되기 때문에 값을 넘길때 사용하면 좋다.
@IBAction func buttonTapped(_ sender: UIButton) {
	performSegue(withIdentifier: "testSegue", sender: nil)
}

Present

present 방식은 코드로 작성하는 방식이다.

  • 이동을 할 뷰 컨트롤러에 storyboard ID를 지정한다.

  • 코드를 통해 이동한다.

  • self.storyboard의 instantiateViewController 를 통해서 스토리 보드 ID에 해당하는 뷰 컨트롤러를 가져온다.

  • 옵셔널이기 때문에 바인딩이 필요하다.

@IBAction func buttonTapped(_ sender: UIButton) {
        guard let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "secondVC") else {
            return
        }
        
        self.present(secondViewController, animated: true)
    }

Push

  • 네비게이션 컨트롤러가 필요하다.
  • 이동을 시작할 뷰에 네비게이션 컨트롤러를 임베디드 해준다.
  • 임베디드 된 네비게이션 컨트롤러에 pushViewController 메서드를 통해 이동한다.
@IBAction func buttonTapped(_ sender: UIButton) {
        guard let secondViewController = self.storyboard?.instantiateViewController(withIdentifier: "secondVC") else {
            return
        }
        
        self.navigationController?.pushViewController(secondViewController, animated: true)
    }

💡 느낀점

사람마다 취향차이가 있겠지만 나는 segue로 이동하는 방식보다는 코드를 많이 사용하는 present나 pushViewController 를 통해서 화면을 이동하는게 좀 더 착착 감기는 느낌이다.

profile
행복합시다!!

0개의 댓글