[IOS] NavigationBar의 Back 버튼에 대한 이벤트를 받고 처리 UINavigationControllerDelegate

iOS에서 NavigationBar의 “Back” 버튼에 대한 이벤트를 받고 처리하기 위해서는 UINavigationControllerDelegate 프로토콜을 사용하여 Navigation Controller의 delegate를 설정해야 합니다. 다음은 이를 수행하는 방법입니다:

  1. ViewController에 UINavigationControllerDelegate 프로토콜을 채택합니다. 클래스 선언 부분에 UINavigationControllerDelegate를 추가합니다.
class YourViewController: UIViewController, UINavigationControllerDelegate {
    // ...
}
  1. ViewController의 viewDidLoad() 메서드에서 Navigation Controller의 delegate를 설정합니다.
override func viewDidLoad() {
    super.viewDidLoad()
    
    // ...
    
    navigationController?.delegate = self
}
  1. ViewController에 다음의 navigationController(_:willShow:animated:) 메서드를 구현합니다. 이 메서드는 Navigation Controller에서 다른 ViewController로 전환되기 직전에 호출됩니다.
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
    if viewController == self.navigationController?.viewControllers.first {
        // 현재 ViewController가 Root ViewController인 경우 "Back" 버튼이 눌렸음을 의미합니다.
        // 여기에서 원하는 동작을 수행하세요.
    }
}

위 코드에서는 현재 ViewController가 Root ViewController인 경우 “Back” 버튼이 눌렸을 때 원하는 동작을 수행하도록 설정했습니다. “Back” 버튼에 대한 이벤트를 처리하려면 해당 부분에 원하는 코드를 추가하면 됩니다.