Từ Tài liệu của Apple trong UIViewControll.h:
"Bốn phương thức này có thể được sử dụng trong các cuộc gọi lại xuất hiện của bộ điều khiển xem để xác định xem nó có được trình bày, loại bỏ hoặc thêm hoặc xóa như một bộ điều khiển xem con không. Ví dụ, bộ điều khiển xem có thể kiểm tra xem nó có biến mất không vì nó bị loại bỏ hoặc xuất hiện bằng cách tự hỏi trong phương thức viewWillDisappear: của nó bằng cách kiểm tra biểu thức ([self isByingDismissed] || [self isMovingFromParentViewCont điều khiển]). "
- (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);
Vì vậy, có, cách duy nhất được ghi lại để làm điều này là cách sau:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if ([self isBeingDismissed] || [self isMovingFromParentViewController]) {
}
}
Phiên bản Swift 3:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if self.isBeingDismissed || self.isMovingFromParentViewController {
}
}