[IOS] 현재 ViewController가 Root ViewController가 아닌 경우에 Back 버튼이 눌렸는지 알고 싶다면

만약 현재 ViewController가 Root ViewController가 아닌 경우에 “Back” 버튼이 눌렸는지 알고 싶다면, 다음과 같은 방법을 사용할 수 있습니다.

  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 {
        // 현재 ViewController가 Root ViewController가 아닌 경우
        // "Back" 버튼이 눌렸음을 의미합니다.
        // 여기에서 원하는 동작을 수행하세요.
    }
}

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