[IOS] 현재 ViewController가 Root ViewController가 아닌 경우에 Back 버튼이 눌렸는지 알고 싶다면
만약 현재 ViewController가 Root ViewController가 아닌 경우에 “Back” 버튼이 눌렸는지 알고 싶다면, 다음과 같은 방법을 사용할 수 있습니다.
- ViewController에
UINavigationControllerDelegate
프로토콜을 채택합니다. 클래스 선언 부분에UINavigationControllerDelegate
를 추가합니다.
class YourViewController: UIViewController, UINavigationControllerDelegate {
// ...
}
- ViewController의 viewDidLoad() 메서드에서 Navigation Controller의 delegate를 설정합니다.
override func viewDidLoad() {
super.viewDidLoad()
// ...
navigationController?.delegate = self
}
- 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” 버튼에 대한 이벤트를 처리하려면 해당 부분에 원하는 코드를 추가하면 됩니다.