Tôi vừa giải quyết vấn đề tương tự này - và câu trả lời ở trên gần như chính xác, họ chỉ quên thiết lập đại biểu.
Tôi có bộ điều khiển chế độ xem gốc hiển thị kích thước danh sách, gọi bộ điều khiển chế độ xem con có thể thay đổi kích thước của danh sách và phải cập nhật kích thước khi trả về.
Khi tôi tạo ra cái nhìn của bố mẹ tôi (SettingsView dưới đây), và thêm nó như là quan điểm gốc của một UINavigationController, tôi chắc chắn rằng để thiết lập đại biểu của UINavigationController trước khi tôi hiển thị xem - đó là phần quan trọng:
SettingsView *sv = [[SettingsView alloc] initWithNibName:@"SettingsView" bundle:nil];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:sv];
[nc setDelegate:sv];
Trong giao diện phụ huynh, thực hiện các giao thức UINavigationControllerDelegate:
@interface SettingsView : UIViewController <UINavigationControllerDelegate>
và cung cấp các phương pháp willShowViewController:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
// Your code to update the parent view
}
Điều này được gọi sau khi chế độ xem con bị loại bỏ và trước khi chế độ xem gốc được hiển thị lại.
Wow cảm ơn, đã có cùng một vấn đề. – drew010
Đừng quên chấp nhận câu trả lời đúng. –
ur quan sát là rất quan trọng .... unforgiven3 câu trả lời là chính xác nhưng nếu u không thực hiện các giao thức UINavigationControllerDelegate trong ViewController nơi ur gọi willShowViewController nó sẽ không bao giờ hoạt động, và cũng là ViewController cha mẹ sẽ tiếp tục phàn nàn ur gửi "ViewController __strong để thông số của id loại tương thích –