Dari Dokumentasi Apple di UIViewController.h:
"Keempat metode ini dapat digunakan dalam callback tampilan pengontrol tampilan untuk menentukan apakah itu disajikan, ditutup, atau ditambahkan atau dihapus sebagai pengontrol tampilan anak. Misalnya, pengontrol tampilan dapat memeriksa apakah itu menghilang karena ditutup atau muncul dengan menanyakan dirinya sendiri dalam metode viewWillDisappear: dengan memeriksa ekspresi ([self isBeingDismissed] || [self isMovingFromParentViewController]). "
- (BOOL)isBeingPresented NS_AVAILABLE_IOS(5_0);
- (BOOL)isBeingDismissed NS_AVAILABLE_IOS(5_0);
- (BOOL)isMovingToParentViewController NS_AVAILABLE_IOS(5_0);
- (BOOL)isMovingFromParentViewController NS_AVAILABLE_IOS(5_0);
Jadi ya, satu-satunya cara yang didokumentasikan untuk melakukan ini adalah dengan cara berikut:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if ([self isBeingDismissed] || [self isMovingFromParentViewController]) {
}
}
Versi Swift 3:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if self.isBeingDismissed || self.isMovingFromParentViewController {
}
}