[iOS] 뷰 컨트롤러 화면전환

!·2022년 7월 28일
0

iOS

목록 보기
2/22

화면전환의 두 가지 방법

스토리보드상에서 화면전환을 하는 방법의 수는 크게 2가지이다.
첫번째는 segue 라는 객체(화면전환을 편리하게 할 수 있도록 만들어진 객체)를 이용하는 방법, 코드를 통해 이동하는 방법이 있다.
segue 객체를 통해 화면을 이동하는 방법은 간단하지만, 원하는 방식의 화면전환이 아닐 수 있기때문에 코드를 이용하는 방법 또한 확실히 배워가는 것이 좋다.


Segue를 통해 화면전환을 하는 방법

매우 간단하다. 화면전환을 실행할 버튼을 control + 클릭 을 통해 생성한 스토리보드(file->cocoa touch class->... ->ctrl + shift + l)에 드래그하면 된다. 옵션에 여러가지 화면 전환 방식이 있지만 모두 비슷하다.(확인해보니 똑같다..)
특징은 세로화면인 경우에는 이전 화면이 위에 보여서 드래그를 통해 내릴 수 있으며, 가로 화면인 경우에는 꽉 차기때문에 뒤로 가는 버튼의 구현이 반드시 필요하다.


코드를 통해 구현하는 방법

@IBAction func touchUpCreditButton(_ sender : UIButton){
        guard let nextVC = self.storyboard?.instantiateViewController(identifier: "CreditViewController") as? CreditViewController else { return }
                
        nextVC.modalTransitionStyle = .flipHorizontal
        nextVC.modalPresentationStyle = .none
                
        self.present(nextVC, animated: true, completion: nil)
    }

guard 키워드를 통해 nil 이 아닌 경우 안전하게 언래핑을 실시하며, self.storyboard? 는 자기 자신의 스토리보드를, instatiateViewCOntroller(identifier:"STORY BOARD ID") as? ControllerName else { return } 을 호출하면 된다.
또한, modalTrasitionStylemodalPresentationStyle 를 통해 화면 전환 방식이나, 화면의 크기 등등을 변경할 수 있다.


이전 화면으로 돌아가기

다른 스토리보드(화면)으로 넘어가는 방법에는 크게 2가지(segue, 코드) 가 있었으나 이전화면으로 돌아가기는 반드시 한가지 방법으로 해야한다.
만약 segue로 이를 구현한다면, 이전 화면의 데이터들은 모두 사라진다. 정말 이전화면으로 돌아가는 것이 아닌 새로운 이전화면을 생성하는 것이기 때문이다.

@IBAction func touchUpDismissButton(){
        dismiss(animated: true, completion: nil)
    }
profile
개발자 지망생

0개의 댓글