Tôi có một câu hỏi lý thuyết. Bây giờ tôi đang đọc hướng dẫn ViewController của Apple .
Họ viết:
Khi đến lúc loại bỏ bộ điều khiển dạng xem đã trình bày, phương pháp ưu tiên là để bộ điều khiển dạng xem trình bày loại bỏ nó. Nói cách khác, bất cứ khi nào có thể, bộ điều khiển chế độ xem tương tự đã trình bày bộ điều khiển chế độ xem cũng phải chịu trách nhiệm loại bỏ nó. Mặc dù có một số kỹ thuật để thông báo cho bộ điều khiển chế độ xem trình bày rằng bộ điều khiển chế độ xem đã trình bày của nó nên bị loại bỏ, kỹ thuật được ưu tiên là ủy quyền.
Nhưng tôi không thể giải thích, tại sao tôi phải tạo một giao thức trong VC được trình bày và thêm biến thể ủy quyền, tạo phương thức ủy quyền trong trình bày VC để loại bỏ VC đã trình bày, thay vì một lệnh gọi đơn giản trong phương thức trình điều khiển chế độ xem được trình bày
[self dismissViewControllerAnimated:NO completion:nil]
?
Tại sao lựa chọn đầu tiên tốt hơn? Tại sao Apple lại giới thiệu nó?
presentingViewController
hầu hết là vô ích vì nó sẽ tham chiếu đếnUINavigationController
ifself
được nhúng trong một. Trong trường hợp đó, bạn sẽ không thể nhận đượcpresentingViewController
tất cả. Tuy nhiên,[self dismissViewControllerAnimated:completion]
vẫn hoạt động trong trường hợp đó. Đề xuất của tôi là tiếp tục sử dụng nó cho đến khi Apple sửa nó.