[swift] 모달과 네비게이션 뷰 뒤로 취소 또는 끌 때의 동작을 조절하는 방법은?
iOS 앱에서 모달 또는 네비게이션 뷰를 사용할 때 사용자가 뷰를 끌거나 뒤로가기를 할 때의 동작을 조절하고 싶을 수 있습니다. 이를 통해 앱의 사용자 경험을 개선할 수 있습니다.
모달 뷰에서의 뒤로가기 동작 제어하기
모달 뷰에서 사용자가 뒤로가기를 했을 때의 동작을 조절하는 방법은 다음과 같습니다.
class ModalViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissModal))
tapGestureRecognizer.cancelsTouchesInView = false
view.addGestureRecognizer(tapGestureRecognizer)
}
@objc func dismissModal() {
dismiss(animated: true, completion: nil)
// 원하는 작업 수행
}
}
모달 뷰에서 사용자가 뷰를 끌어서 dismiss 할 때의 동작을 조절하기 위해 UIGestureRecognizer
를 사용하여 뷰의 바깥 부분을 터치했을 때 dismiss 동작을 수행할 수 있습니다.
네비게이션 뷰에서의 뒤로가기 동작 제어하기
네비게이션 뷰에서 사용자가 뒤로가기를 했을 때의 동작을 조절하는 방법은 다음과 같습니다.
class NavigationViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.hidesBackButton = true
let newBackButton = UIBarButtonItem(title: "Custom", style: .plain, target: self, action: #selector(back))
navigationItem.leftBarButtonItem = newBackButton
}
@objc func back(sender: UIBarButtonItem) {
// 원하는 작업 수행
self.navigationController?.popViewController(animated: true)
}
}
네비게이션 뷰에서 기본 뒤로가기 버튼을 숨기고 새로운 뒤로가기 버튼을 추가하여 원하는 동작을 수행하도록 할 수 있습니다.
결론
모달 및 네비게이션 뷰에서의 뒤로가기 또는 끌기 동작을 조절하는 방법에 대해 알아보았습니다. 이를 통해 앱의 사용자 경험을 개선하고 사용자의 편의성을 높일 수 있습니다.
더 많은 정보는 iOS 공식 문서를 참고하세요.