cuốn sách gpt4 ai đã làm

Phát hiện UIViewController hợp nhất "trở thành trên cùng"?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 08:28:25 27 4
mua khóa gpt4 Nike

Đối với tôi, dường như những tình huống này đều song song:

  • Trình điều khiển Chế độ xem của tôi hiển thị Trình điều khiển Chế độ xem toàn màn hình khác hiện đã bị đóng

  • Trình điều khiển Chế độ xem của tôi đang hiển thị một Trình điều khiển Chế độ xem không toàn màn hình khác hiện đã bị loại bỏ

  • Trình điều khiển Chế độ xem của tôi hiển thị cửa sổ bật lên hiện đã đóng

  • Trình điều khiển Chế độ xem của tôi đã đẩy Trình điều khiển Chế độ xem khác và bây giờ nó đã xuất hiện

Trong mỗi trường hợp, Trình điều khiển Chế độ xem của tôi không còn là Trình điều khiển Chế độ xem "phía trước" và sau đó lại trở thành "phía trước". Tôi rất ngạc nhiên khi iOS không gửi một sự kiện "đến trước" nào tới Trình điều khiển chế độ xem của tôi để bao gồm tất cả các tình huống này.

tôi nghĩ tôi có thểmột mìnhBao gồm từng trường hợp này và tôi nghĩ đây là tất cả những trường hợp tôi cần giải quyết, nhưng mã được tạo ra rất khó hiểu và phân tán:

  • viewDidAppear Phát hiện cửa sổ bật lên của Bộ điều khiển xem đẩy và đóng Bộ điều khiển xem toàn màn hình

  • Thông báo ủy quyền của hộp bật lên phát hiện việc đóng hộp bật lên

  • Không chắc chắn điều gì phát hiện việc đóng màn hình không toàn màn hình được trình bày Trình điều khiển xem

Làm thế nào để giải quyết vấn đề này một cách mạch lạc và khéo léo?

câu trả lời hay nhất

Điểm chung của những trường hợp này không phải là sự xuất hiện của Bộ điều khiển Chế độ xem ban đầu mà là sự biến mất của Bộ điều khiển Chế độ xem đang trình bày/đẩy. Do đó, một giải pháp đơn giản và rõ ràng dường như là giao thức và kiến ​​trúc đại biểu. Khai báo một cặp giao thức như sau:

giao thức Trang chủ : lớp {
func sắp về nhà()
}
giao thức Đi: lớp {
var home : Trang chủ?
}
tiện ích mở rộng Đi nơi Tự thân: UIViewController {
func thông báoComingHome() {
nếu self.isBeingDismissed ||
self.home?.comingHome()
}
}
}
  • Bộ điều khiển chế độ xem trang chủ phải áp dụng Trang chủ và mỗi bộ điều khiển chế độ xemtrang chủ设置为self.

  • Trình điều khiển chế độ xem đang trình bày hoặc đẩy phải áp dụng Away và phải được triển khai như sau lượt xemSẽBiến mất:

    override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(hoạt hình)
    self.notifyComingHome()
    }

Điều này áp dụng cho bốn tình huống được liệt kê trong câu hỏi. Thật không may, Cocoa Touch không tự động thực hiện việc này cho bạn.


biên tập Cách tiếp cận này thậm chí còn trở nên quan trọng hơn trong ứng dụng của tôi vì iOS 13 buộc chúng tôi phải sử dụng bộ điều khiển chế độ xem không toàn màn hình. Ngoài ra, tôi đã phân lớp UIAlertController để nó phù hợp với Đi vắng.

Phát hiện UIViewController hợp nhất "trở thành trên cùng"? Giới thiệu về ios - Phát hiện UIViewController hợp nhất "trở thành trên cùng"? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/54602662/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress