На данный момент я реализовал эти два метода в своем AppDelegate.
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool
и
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool
Первый вызовется, если пользователь открывает мое приложение с результатом поиска из Spotlight, а второй вызывается, если мое приложение открывается из Apple Maps (поскольку это приложение для маршрутизации).
МОЙ ВОПРОС: КАК ЛУЧШЕ ПЕРЕЙТИ К КОНКРЕТНОМУ UIViewController
ИЗ APPDELEGATE (независимо от того, в каком представлении находится пользователь)?
Причина, по которой я спрашиваю, заключается в том, что в данный момент я пытаюсь перейти к нему вручную в зависимости от того, где может находиться пользователь. Например, они могут находиться в UIViewController
, который отображается модально (которое затем нужно закрыть), или они могут находиться глубоко в UINavigationController
, в котором приложению затем нужно будет вызвать popToRootViewController
.
Делая это таким образом, код становится волосатым и, похоже, работает неправильно. Также просто не кажется правильным делать это таким образом, потому что он очень хрупкий.