Swift场景userActivity NSUserActivity传tuviewController

Swift scene userActivity NSUserActivity pass tu viewController

我有一个问题。 在“class SceneDelegate”

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
   let url = userActivity.webpageURL  
print(url) //result is www.mywebsite.com
}

如何将此 url 传递给我的 ViewController???

这取决于您拥有的视图控制器层次结构,但假设您有一个 UITapBarController 作为您的根视图控制器并且您希望最终到达导航控制器中的视图控制器:

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
    let url = userActivity.webpageURL  
    if let windowScene = scene as? UIWindowScene {
        for window in windowScene.windows {
            if let rootViewController = window.rootViewController {
                let storyboard = UIStoryboard(name: "Main", bundle: nil)
                if  let yourVC = storyboard.instantiateViewController(withIdentifier: "YourVC") as? YourViewController,
                    let tabBarController = rootViewController as? UITabBarController,
                    let navController = tabBarController.selectedViewController as? UINavigationController {
                    yourVC.data = url
                    navController.pushViewController(yourVC, animated: true)
                }
            }
        }
    }
}

更新

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
    let url = userActivity.webpageURL
    if let windowScene = scene as? UIWindowScene {
        for window in windowScene.windows {
            if let rootViewController = window.rootViewController {
                let storyboard = UIStoryboard(name: "Main", bundle: nil)
                if let yourVC = storyboard.instantiateViewController(withIdentifier: "EventViewController") as? EventViewController,
                   let navController = rootViewController as? UINavigationController {
                    yourVC.data = url
                    navController.pushViewController(yourVC, animated: true)
                }
            }
        }
    }
}