코드로 구현하기 위해 스토리보드를 삭제하고 싶다면
[iOS] 스토리보드 없이 프로젝트 생성하기
먼저 모달로 띄울 ViewController를 추가하고
root ViewController에 버튼을 하나 생성하고 버튼의 레이아웃을 잡은 후
presentModal.addTarget(self, action: #selector(touchUpPresentModalButton), for: .touchUpInside)
버튼에 addTarget을 설정해준다.
@objc
func touchUpPresentModalButton(_ sender: UIButton) {
let vc = ModalViewController()
vc.modalPresentationStyle = UIModalPresentationStyle.fullScreen
self.present(vc, animated: true, completion: nil)
}
그리고 다음과 같이 모달을 present하는 메소드를 작성한다.
❗️selector로 함수를 지정할 때는 해당 함수 앞에 @objc
를 작성해야 한다.
이제 버튼을 누르면 모달이 뜨는 것을 볼 수 있다.
.
.
모달을 dismiss하고 싶다면
dismissModal.addTarget(self, action: #selector(touchUpDismissModalButton), for: .touchUpInside)
@objc
func touchUpDismissModalButton(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}
modal ViewController에 똑같이 버튼을 추가해주고 모달을 dismiss하는 메소드를 지정해주면 된다.