【发布时间】:2021-02-07 00:25:18
【问题描述】:
我正在开发一个项目,用户可以从外部打开应用程序并显示 ProductViewController(一个显示特定产品的视图控制器,其中包含名称、模式、价格等信息),我使用这个AppDelegate 内的函数:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
我想在应用程序中放置一些快捷方式按钮,当用户点击该按钮时,也可以在 ProductViewController 中访问相同的产品。(想象一下,有一次用户通过产品我放置了一些快捷方式,以便用户可以快速找到该产品)我知道我可以使用以下代码来做到这一点:
let productVC = ProductViewController()
present(productVC, animated: true)
但我想知道我是否可以使用这部分代码(在 AppDelegate 内也可以这样做)。 我不想同时使用这两种方式来完成一项工作。
【问题讨论】:
-
正确的想法,但可能是错误的方式。您在应用程序委托中的代码应该从 URL 解码产品数据,然后调用一个函数来呈现产品 VC。在您的应用程序中,您可以调用该函数。无需添加 URL 的开销。
-
是的,你是对的,我知道,但你认为有没有办法做到这一点?
-
当然。为什么不?这是你的代码。检索产品详细信息后,您已经拥有移动到 vc 的代码。只需在需要时调用即可。
-
不,我的意思是我在问题中提出的方式:)
-
这可能是可能的,但我看不出有什么好处。它只是无缘无故地增加了很多复杂性。
标签: ios swift deep-linking url-scheme