【问题标题】:Open UIViewController from iOS14 WidgetKit从 iOS14 WidgetKit 打开 UIViewController
【发布时间】:2021-03-03 19:41:53
【问题描述】:
我有一个非常简单的应用流程。 ParentVC 和 ChildVC。在 ParentVC 中,我有一个集合视图,在它的 didSelectItem 上,ChildVC 打开了相关内容。现在,我使用 iOS 14 WidgetKit 创建了中小型小部件,当应用程序进入后台时,存储 ChildVC 的 PageTitle 并在 WidgetUI 上显示。
我的要求是:当我点击 Widget 时,如何打开那个特定的 ChildVC?
PS:我使用的是 AppDelegate 而不是 SceneDelegate。
【问题讨论】:
标签:
swift
swiftui
deep-linking
appdelegate
widgetkit
【解决方案1】:
将以下函数添加到您的 Appdelegate:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
let vcNext = UIStoryboard(name: "nameYourStoryBoard", bundle: nil).instantiateViewController(withIdentifier: "IdentifierOfViewController") as! YourViewController
let tabbar = window?.rootViewController as? UITabBarController
let navcontrol = tabbar?.selectedViewController as? UINavigationController
navcontrol?.pushViewController(vcNext, animated: true)
window?.makeKeyAndVisible()
return true
}