是否可以使用 URLScheme 从一个 ViewController 移动到另一个?

Is it possible to move from one ViewController to another by using URLScheme?

我正在开发一个项目,用户可以从外部打开应用程序并显示产品ViewController(一个 ViewController 显示特定产品以及一些信息,例如名称、模式、价格和...) 对于这部分,我在 AppDelegate 中使用了这个函数:

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool 

我想在应用程序中放置一些快捷方式按钮,当用户点击该按钮时,也可以在 ProductViewController 中访问相同的产品。(想象一下,有一次用户通过我的产品添加一些快捷方式以便用户可以快速找到该产品)我知道我可以使用以下代码来做到这一点:

let productVC = ProductViewController()
present(productVC, animated: true)

但我想知道我可以使用那部分代码吗(在 AppDelegate 中也可以这样做)。 我不想同时使用这两种方式来完成一项工作。

是的,您可以在应用程序调用 openURL(或者更确切地说 application(_:open:options))中有一个按钮,其中 URL 调用私有 URL 方案。然后,您可以让您的应用委托解码 URL,找出 URL 指定的视图控制器,然后打开该视图控制器。

只需让您的按钮的 IBAction 调用 application(_:open:options) 与您的自定义 URL。你可以使用类似的东西:

myApp://open?VC=ProductViewController

其中 open 是您的应用寻找的动词,告诉它打开视图控制器,VC 查询参数告诉它打开哪个 VC。

您到底需要什么帮助?