2014-10-15 21 views
6

Một trong những vấn đề lớn nhất với popovers là cách gạt bỏ phương pháp của đại biểu (-[popoverPresentationControllerShouldDismissPopover:], -[popoverPresentationControllerDidDismissPopover:]) chỉ được gọi là nếu người dùng gạt bỏ popover, không nếu popover đó bị lập trình.phương pháp UIPopoverPresentationControllerDelegate chỉ kêu gọi sa thải người dùng

Có nhiều mã quan trọng trong các phương pháp loại bỏ của tôi cần được gọi. Có một giải pháp thanh lịch để đảm bảo mã này được gọi ngay cả khi bị loại bỏ theo chương trình không? (Chắc chắn, tôi có thể gọi "nên" và "đã làm" mỗi khi tôi loại bỏ ... nhưng đó là dễ bị lỗi và loại tổng.)

Cảm ơn.

+0

Bạn có tìm thấy giải pháp thanh lịch nào không? –

+0

Đây là [câu trả lời] của tôi (http://stackoverflow.com/a/38298712/4593553) xin vui lòng kiểm tra. – Jerome

Trả lời

2

Tôi không biết giải pháp nào tốt hơn là gọi thủ công mỗi lần bạn loại bỏ nó theo cách thủ công.

[self popoverPresentationControllerDidDismissPopover:self.popoverPresentation]; 

Điều này khá phổ biến trong SDK iOS. Ví dụ: nếu bạn chọn một hàng theo cách lập trình trong chế độ xem bảng, phương thức ủy nhiệm tableView:didSelectRowAtIndexPath: sẽ không được gọi.

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