Моя иерархия представлений выглядит так:
- (root) PRSBaseViewController - a UIViewController subclass - has child viewControllers
- (presented) PRSModalWebViewController - a UINavigationController subclass
- (pushed, animated:NO) PRSWebViewController - a UIViewController subclass - WKWebView is a subview.
- (presented) PRSModalWebViewController - a UINavigationController subclass
Когда я пытаюсь и долго нажимаю на ссылку в WebView, я получаю сообщение об ошибке:
Warning: Attempt to present <WKActionSheet: 0x127520d10> on <PRSBaseViewController: 0x1275117f0> whose view is not in the window hierarchy!
Вместо представления навигации с помощью presentViewController:animated:completion
и вместо этого используйте танец addChildViewController:
, чтобы добавить его в контроллер представления в иерархию. Я не получаю ошибок, это довольно странно.
Кто-нибудь знает, что может быть причиной проблем с иерархией представлений?
Обновление: я составил суть всех моих занятий
RootViewController
? Вы говорите, что разместили Gist своих классов, но среди них нет RootViewController. Не могли бы вы показать, как RootViewController попадает в иерархию представлений и как он получает свое подпредставление WKWebView? (Он не может получить его в nib, так как в библиотеке объектов нет WKWebView; вы должны делать все это в коде.) - person matt   schedule 05.01.2015WKActionSheet
на[view.window rootViewController]
(источник). Но если контроллер корневого представления уже что-то представляет, то это неправильно. - person Lily Ballard   schedule 07.05.2016