꾸준히 안타치기

뷰컨트롤러를 호출해 화면전환 시 dissmiss 적용 안됨 해결 본문

iOS/문제해결

뷰컨트롤러를 호출해 화면전환 시 dissmiss 적용 안됨 해결

글자줍기 2022. 1. 8. 06:45
반응형

화면전환하는 방법으로 뷰컨트롤러를 직접 호출해 화면을 전환하는 방법이 있다.

이때 호출 하는 방법으로는 스토리보드ID를 설정하고, 호출하려는 뷰컨트롤러에서 스토리보드 ID를 참조하고

self.present을 해준다. 그러면 다음화면으로 이동할수 있다.

    
    // 회원가입 버튼 액션
    @IBAction func joinBtn(_ sender: Any) {
        print("RegisterViewController  - 회원가입 버튼클릭")
        
      // 회원가입 완료 화면으로 넘어가기
        guard let uvc = self.storyboard?.instantiateViewController(withIdentifier: "JoinOKVC") else {
            return
        }
        
        // 화면전환시 애니메이션 타입
        uvc.modalTransitionStyle = UIModalTransitionStyle.coverVertical
        
        // 인자값으로 뷰 컨트롤러 인스턴스를 넣고 프레젠트 메소드 호출
        self.present(uvc, animated: true)
    
    }

 

그리고 나서 호출된 뷰컨트롤러에서 창닫기 버튼을 누르면, 해당창이 사라지고 다시 호출한 뷰가 보이는 과정에서 

dismiss를 사용했는데  dismiss가 적용이 되지 않아서 찾아보니  Detecting이 된 것같아 

//        self.presentationController?.dismissalTransitionDidEnd(true) 에서

 self.dismiss(animated: true, completion: nil)로 변경해 적용하니 적용이 되었다.

import UIKit

class JoinOKVC: UIViewController {
    
    @IBAction func dissmiss(_ sender: Any) {
//        self.presentationController?.dismissalTransitionDidEnd(true)
        self.dismiss(animated: true, completion: nil)
    }
}

 

https://stackoverflow.com/questions/56568967/detecting-sheet-was-dismissed-on-ios-13

 

Detecting sheet was dismissed on iOS 13

Before iOS 13, presented view controllers used to cover the entire screen. And, when dismissed, the parent view controller viewDidAppear function were executed. Now iOS 13 will present view contro...

stackoverflow.com

 

반응형
Comments