Почему presentViewController не работает?

Я создал новый проект для эксперимента MultipeerConnectivity. Я добавил эти строки, чтобы представить viewcontroller в viewDidLoad, но он не появляется. Зачем? Я вижу только белый фон.

MCBrowserViewController *browserViewController =
[[MCBrowserViewController alloc] initWithBrowser:browser
                                         session:session];
browserViewController.delegate = self;

self.modalPresentationStyle = UIModalPresentationFullScreen;

[self presentViewController:browserViewController animated:YES completion:
 ^{
     [browser startBrowsingForPeers];
 }];

ОБНОВИТЬ:

Я вижу это в консоли:

Предупреждение: Попытайтесь представить MCBrowserViewController: чье представление не находится в иерархии окон!

2 ответа

Решение

Проблема в том, что вы называете это в viewDidLoad, В этот момент представление создается, но оно нигде не видно, а это означает, что контроллер представления еще не появился. Вы должны выполнить этот метод на viewDidAppear:,

Я думаю, что вы что-то упустили в инициализации контроллеров представления. Правильно ли вы создаете экземпляр иерархии представления для контроллера представления? Что это значит "но это не подходит". Вы можете видеть только белый фон представленного контроллера представления или представленного Контроллера представления? Попробуйте установить точку останова в блоке завершения. Определен ли браузер? Обратный вызов завершения даже вызывается?

Другие вопросы по тегам