В моем приложении у меня есть вход в Facebook на моем первом контроллере представления, который перенаправляется на мой следующий контроллер представления после успешного входа в систему, у которого есть опция входа в LinkedIn.Окно входа не открывается в следующем представлении контроллера Swift
Однако после нажатия кнопки входа в систему LinkedIn я получаю эту ошибку.
2016-10-17 23:00:42.588 Frieyo[86134:1636422] -canOpenURL: failed for URL: "linkedin://" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
2016-10-17 23:00:42.593 Frieyo[86134:1636422] Warning: Attempt to present <UINavigationController: 0x7f9fa409ba00> on <Frieyo.TutorialViewController: 0x7f9fa2c04430> whose view is not in the window hierarchy!
Я знаю, что это не проблема с открытием URL LinkedIn, потому что мой App Делегат правильно обработки тех URL, и , когда я установил вид контроллера LinkedIn, как мой первоначальный вид контроллера на вход работает!
По-видимому, эти ответы: iOS: Warning "attempt to present ViewController whose view is not in the window hierarchy" и whose view is not in the window hierarchy указывают, что я должен поместить этот метод в свой метод viewDidAppear; однако это не имеет значения, потому что после успешного входа я перенаправляюсь на другое представление.
Проблема (предположим) лежит внутри стека представления. Вот как я перехожу от первого контроллера представления к LinkedIn VC.
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "VerifyLinkedInViewController") as! VerifyLinkedInViewController
self.present(nextViewController, animated:true, completion:nil)
Как именно я переписывать, чтобы избежать - «чей вид не в иерархии окон» ?
Вы пробовали использовать letViewController = storyBoard.instantiateViewController (withIdentifier: "VerifyLinkedInViewController") как! UIViewController ....? –
Просто попробовал. Не повезло:/Почему вы это предложили? –
иерархия окна в том смысле, что ваш следующий контроллер/представление не находится в очереди, чтобы загрузить на окно .., вы что-то пропустили в коде/раскадровке, попытайтесь отладить в проекте (это распространенная ошибка произойдет, когда мы попробуем вновь или migrate objc to swift). –