gpt4 book ai didi

ios - 从推送通知中使用导航 Controller 打开特定 View

转载 作者:行者123 更新时间:2023-11-28 11:36:25 24 4
gpt4 key购买 nike

我试图从推送通知打开某个 View ,但我总是丢失导航栏以及后退和下一个引用。这就是我的 Storyboard的样子(我想打开的 View )

enter image description here

这是我的 AppDelagate 中的内容:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "notification") as? NotificationViewController
self.window?.rootViewController = vc

最佳答案

您正在做的是完全替换应用程序的 Root View Controller ,这意味着所有当前 UI 都将被丢弃。

您应该做的是利用您对应用程序的了解将其引导至新内容。例如,如果你的 Root View Controller 是一个导航 Controller ,你可以将 rootViewController 转换为一个导航 Controller 并推送它(如果你的 Root View Controller 是其他东西,比如标签栏 Controller ,这将失败) .

guard let vc = storyboard.instantiateViewController(withIdentifier: "notification") as? NotificationViewController else {
fatalError("Main Storyboard doesn't have a notification controller")
}
guard let nav = self.window?.rootViewController as? UINavigationController else {
return //handle unexpected state
}
nav.push(vc, animated: true)

另一种选择是将您的通知 Controller 嵌入到导航 Controller 中,添加一个关闭按钮,并以模态方式呈现它,这样您就可以将它呈现在rootViewController 之上> 无论那个 Controller 是什么。

关于ios - 从推送通知中使用导航 Controller 打开特定 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55261995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com