[IOS] back 버튼이 눌렸는지 아는 방법

UINavigationBarDelegate를 사용하여 backButtonPressed() 메서드를 호출하는 방법입니다. 다음은 해당 방법을 보여주는 예시입니다:

  1. UINavigationBarDelegate 프로토콜을 채택한 뒤, backButtonPressed() 메서드를 구현합니다. 이 메서드는 “Back” 버튼이 눌렸을 때 호출될 메서드입니다.
class YourViewController: UIViewController, UINavigationBarDelegate {
    // ...
    
    @objc func backButtonPressed() {
        // "Back" 버튼이 눌렸을 때 수행할 동작을 여기에 작성합니다.
        // 예: 특정 동작 수행, 이전 화면으로의 전환 등
        print("Back button pressed")
    }
}
  1. viewDidLoad()에서 navigationControllernavigationBar.delegate를 현재 viewController로 설정합니다.
override func viewDidLoad() {
    super.viewDidLoad()

    navigationController?.navigationBar.delegate = self
}
  1. shouldPopItem(_:) 메서드를 구현하여 “Back” 버튼이 눌렸을 때 호출되는 backButtonPressed() 메서드를 호출합니다.
func navigationBar(_ navigationBar: UINavigationBar, shouldPop item: UINavigationItem) -> Bool {
    backButtonPressed()
    return true
}

위 예시에서는 UINavigationBarDelegate 프로토콜을 채택하고, backButtonPressed() 메서드를 구현합니다. viewDidLoad()에서 navigationController?.navigationBar.delegate를 현재 viewController로 설정하고, shouldPopItem(_:) 메서드를 구현하여 “Back” 버튼이 눌렸을 때 backButtonPressed() 메서드를 호출합니다.

이 방법을 사용하면 “Back” 버튼이 눌렸을 때 backButtonPressed() 메서드가 호출되어 원하는 동작을 수행할 수 있습니다. 이렇게하면 “Back” 버튼의 눌림 이벤트를 캐치하고 이를 활용하여 필요한 작업을 수행할 수 있습니다.