Tôi có một số mã để dọn sạch trong số viewWillDisappear:
, mà tôi chỉ muốn sử dụng khi chế độ xem đang chuyển về bộ điều khiển chế độ xem gốc.isBeingDismissed không được đặt trong chế độ xemWillDisappear:
- (void)viewWillDisappear:(BOOL)animated
{
if ([self isMovingFromParentViewController] || [self isBeingDismissed]) {
NSLog(@"isMovingFromParentViewController or isBeingDismissed");
// clean up
}
[super viewWillDisappear:animated];
}
Chế độ xem có thể được trình điều khiển điều hướng đẩy hoặc hiển thị dưới dạng bộ điều khiển chế độ xem (từ cùng một bộ điều khiển điều hướng). Nếu nó được đẩy, sau đó xuất hiện (nhấn nút quay lại), mã dọn dẹp của tôi sẽ chạy. Nếu nó được trình bày như một bộ điều khiển xem phương thức, sau đó bị loại bỏ, mã không chạy.
tôi sa thải như vậy:
[rootViewController dismissModalViewControllerAnimated:YES];
Câu hỏi của tôi là: tại sao không phải là isBeingDismissed
bộ khi tôi bỏ điều khiển quan điểm của tôi?
Tôi có thể khẳng định rằng 'isBeingDismissed() 'trả về' false' khi viewController được cho là xuất hiện từ một 'UINavigationController', chẳng hạn như viewController chi tiết trong một' UISplitViewController' đã thu gọn. – bio