2013-04-05 42 views
7

Tôi có 2 Chế độ xem bộ điều khiển với Bộ điều khiển điều hướng. Khi tôi sử dụng [self.navigationController popViewControllerAnimated:YES]; trong phần thứ hai - cái đầu tiên mở ra nhưng các phương thức trong viewDidLoad không được gọi. Các phương pháp được gọi trong bộ điều khiển đầu tiên trong tình huống này là gì?Phương thức nào được gọi sau khi nhấn nút quay lại trong ios

+0

Chế độ xem đã được tải, chúng không được tải xuống cho đến khi chúng bị tắt. Không sử dụng ARC nếu bạn mới, chỉ là đề xuất của tôi. –

+0

Xem thêm: http://stackoverflow.com/questions/1557290/how-to-trap-the-back-button-event – Senseful

Trả lời

23

Bộ điều khiển điều hướng gửi viewWillAppear: để một bộ điều khiển xem trước khi đưa quan điểm của mình trên màn hình, và viewDidAppear: sau.

Bên trong viewWillAppear:viewDidAppear:, trình điều khiển chế độ xem có thể kiểm tra self.isMovingToParentViewController. Nếu isMovingToParentViewControllerYES, bộ điều khiển chế độ xem đang được thêm vào bộ điều khiển điều hướng ở vị trí đầu tiên (có lẽ vì đó là bộ điều khiển chế độ xem gốc của trình điều khiển điều hướng hoặc do nó đang được đẩy). Nếu isMovingToParentViewControllerNO, bộ điều khiển chế độ xem đã có trong ngăn xếp của bộ điều khiển điều hướng và một bộ điều khiển chế độ xem khác đang được hiển thị để hiển thị nó.

Đọc “Handling View-Related Notifications” in the UIViewController class reference.

+2

Sau ba năm làm việc với iOS, tôi vẫn chưa biết điều này ... – Nailer

1

Trong trường hợp đó, phương thức viewWillAppear sẽ được gọi.

-(void)viewWillAppear:(BOOL)animated 
{ 

} 
+0

Cảm ơn bạn! Bây giờ tôi thấy làm thế nào để làm điều này! – ShurupuS

+0

Đừng quên gọi '[super viewWillAppear: animated];'! :) – yujean

Các vấn đề liên quan