2014-09-28 14 views
25

Tự hỏi nếu bất cứ ai khác đã gặp phải vấn đề này thời gian gần đây ...presentingViewController là con số không khi sử dụng presentViewController: hoạt hình: Dự kiến ​​hoàn thành trong iOS 8

Đối với một trong các bộ điều khiển quan điểm của tôi, chỉ có trên iOS 8, sau khi gọi presentViewController:animated:completion:, các bộ điều khiển xem được trình bày có self.presentingController là không. Nó là tốt trên iOS7, và cũng không xảy ra trên một bộ điều khiển xem.

documentation nói rằng cần được đặt, miễn là trình điều khiển chế độ xem được trình bày được trình bày một cách bình thường. Do nó hoạt động trong iOS 7, đây có phải là lỗi iOS 8 không?

Tôi đã có thể thực hiện nó bằng cách sử dụng phương pháp ngăn chặn vùng chứa chế độ xem, nhưng sẽ tốt nếu ai đó đã thấy điều này trước đây và biết nguyên nhân gốc đã kích hoạt hành vi này.

nhờ

+0

Bạn đã đăng nhập cái này ở đâu. Nó không phải là null trong viewWillAppear, hoặc viewDidAppear, nhưng nằm trong viewDidLoad. Tôi không nhớ nếu đó là khác nhau từ iOS 7. – rdelmar

+1

Bộ điều khiển được trình bày là một bên thứ 3 mà tôi không có quyền truy cập để bước qua (FBFriendPickerViewController). Tôi nhìn thấy nó là nil khi tôi nhấn một breakpoint trên dòng sau khi cuộc gọi đến 'presentViewController: hoạt hình: hoàn thành:' từ breakpoint mã điều khiển trình bày –

Trả lời

37

Đã có một vấn đề tương tự với iOS 8, nơi presentingController là con số không khi kiểm tra giá trị trong viewDidLoad.

Khi gọi viewDidLoad, không có gì đảm bảo rằng hệ thống phân cấp bộ điều khiển xem được tải trong cây điều hướng. Di chuyển logic sang giai đoạn sau (ví dụ: viewWillAppear) nên giải quyết vấn đề đó vì presentingController sẽ được tải sau đó.

+2

Điều này đã giúp tôi ra ngoài. Tôi cần một con trỏ tới 'presentingViewController' trong một hàm. Tôi đã tạo một thuộc tính, truy cập và lưu một con trỏ tới 'presentingViewController' trong' viewDidAppear' để sử dụng sau này. – Airuop

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