Apple'ın UIViewController.h içindeki Dokümantasyonundan:
"Bu dört yöntem, bir görünüm denetleyicisinin görünüm geri çağrılarında, bir alt görüntüleme denetleyicisi olarak sunulup sunulmadığını, işten çıkarılmadığını veya eklenip kaldırılmadığını belirlemek için kullanılabilir. Örneğin, bir görünüm denetleyicisi, işten çıkarıldığı için yok olup olmadığını kontrol edebilir veya viewWillDisappear: yöntemini ([self isBeingDismissed] || [self isMovingFromParentViewController]) ifadesini kontrol ederek kendisini sorarak attı. "
- (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);
Yani evet, bunu yapmanın tek belgelenmiş yolu şu şekildedir:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if ([self isBeingDismissed] || [self isMovingFromParentViewController]) {
}
}
Swift 3 sürümü:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if self.isBeingDismissed || self.isMovingFromParentViewController {
}
}