2014-09-28 10 views
25

Zastanawiasz się, czy ktoś napotkał ten problem ostatnio ...presentingViewController jest zerowa podczas korzystania presentViewController: animowany: Zakończenie: w iOS 8

Dla jednego z moich kontrolerów widoku, tylko na iOS 8, po wywołaniu presentViewController:animated:completion:, z przedstawiony kontroler widoku ma self.presentingController jako zero. Jest dobrze na iOS7, a także nie występuje na innym kontrolerze widoku.

Według documentation należy go ustawić, o ile przedstawiony kontroler widoku został przedstawiony modalnie. Biorąc pod uwagę, że działa on w systemie iOS 7, czy może to być błąd systemu iOS 8?

Udało mi się obejść ten problem, stosując podejście polegające na ograniczaniu widoczności kontenera, ale dobrze byłoby, gdyby ktoś zobaczył to wcześniej i poznał przyczynę, która spowodowała to zachowanie.

dzięki

+0

Gdzie to zapisałeś. Nie ma wartości null w viewWillAppear lub viewDidAppear, ale jest w viewDidLoad. Nie pamiętam, czy różni się to od iOS 7. – rdelmar

+1

Prezentowany kontroler to taki, który nie ma dostępu do kroku (FBFriendPickerViewController). Widzę go jako zero, gdy trafię punkt przerwania linii po wywołaniu do 'presentViewController: animated: completion:' od punktu kontrolnego prezentującego kontroler –

Odpowiedz

37

miał podobny problem z iOS 8, gdzie presentingController nie występuje gdy sprawdzanie wartości w viewDidLoad.

Po wywołaniu viewDidLoad, nie ma gwarancji, że hierarchia kontrolera widoku zostanie załadowana do drzewa nawigacji. Przeniesienie logiki na późniejszy etap (na przykład: viewWillAppear) powinno rozwiązać ten problem, ponieważ do tego czasu należy załadować presentingController.

+2

Pomogło mi to. Potrzebowałem wskaźnik do 'presentationViewController' w funkcji. Stworzyłem właściwość, dostęp i przechowywanie wskaźnika do 'presentationViewController' w' viewDidAppear' do wykorzystania później. – Airuop

Powiązane problemy