trong khi mã hóa trong iOS 4.3 trước đây, tôi tìm thấy trong khi thêm chế độ xem của trình điều khiển chế độ xem khác với [superview addSubView:controller.view]
, trường hợp bộ điều khiển sẽ không nhận được thông báo -viewWillAppear/viewDidAppear
. một số luồng trong ngăn xếp tràn. Sau đó, tôi tự gọi -viewWillAppear/-viewDidAppear
nếu cần.iOS: hành vi addSubview khác nhau giữa iOS 4.3 và 5.0
nhưng, sau khi nâng cấp lên iOS 5.0
, một số hành vi nguy hiểm UIView
đã xảy ra. Cuối cùng tôi thấy rằng trong iOS 5, [superview addSubView:controller.view]
, sẽ gửi một thông báo -viewWillAppear/-viewDidAppear
đến cá thể bộ điều khiển tự động, cộng với các cuộc gọi thủ công của tôi, có hai thông báo trùng lặp mỗi khi bộ điều khiển hành động hành vi của nó.
và tôi cũng tìm thấy một vấn đề tương tự: iOS 5 : -viewWillAppear is not called after dismissing the modal in iPad
Bây giờ, vấn đề là, sau khi tìm kiếm tài liệu táo, tôi đã không tìm thấy bất kỳ doc rõ ràng cho diff về những vấn đề này. Tôi thậm chí còn tự hỏi liệu đây có phải là hành vi vòng đời xem được đảm bảo trong iOS 5.0 hay không.
Có ai khắc phục sự cố tương tự hoặc tìm một số nguyên tắc về sự khác biệt này không. vì tôi muốn chạy ứng dụng của mình cả trong 4.x & 5.x iOS
.
Như bạn đã phát hiện ra, chỉ có khoảng 10% trong những thay đổi giữa iOS 4 và iOS 5 được ghi nhận một cách rõ ràng. –