ios - 在 appDelegate 中的 didReceiveRemoteNotification 方法的 Present 模式后推送控制器
问题描述
我需要在 didReceiveRemoteNotification appDelegate 的方法内的当前完成处理程序中推送一个 viewController。
我的视图/控制器结构:
Splash > LoginController (UIViewController) > HomeController (UINavigationController)
当我收到一个新通知时,我想从我的 HomeController 推送一个新的 UIViewController。
到目前为止我所拥有的:
接收通知并获取数据 在 didReceiveRemoteNotification 中获取 window.rootViewController (LoginController) 使用 present(_:animated:completion:) 方法呈现 navBarController (这样做我可以看到 HomeController,因为控制器是 rootviewcontroller)
我需要的?
推送 ProductDetailController
我已经尝试过:
从 navBarController 推送 从 HomeController 的新实例推送
我得到了什么(但不想)
在完成处理程序上将 ProductDetailController 呈现为模态。
提前致谢!
解决方案
在say to中设置一个Bool
默认值 并将其签入didReceiveRemoteNotification
true
viewDidAppear
HomeController
override func viewDidAppear(_ animated:bool) {
super.viewDidAppear(animetd:animated)
if UserDefaults.standard.bool(forKey:"presentDetails") {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "detailsID") as! ProductDetailController
self.navigationController?.pushViewController(vc, animated: true)
UserDefaults.standard.set(false,forKey:"presentDetails")
}
}
推荐阅读
- postgresql - 使用 Pandas 导入 .csv to_sql 的 Python 脚本失败,除非我 DROP TRIGGER 用于更新物化视图
- javascript - document.getElementById('').display=block 不工作
- excel - 如何向现有 VBA 图表添加新的水平(限制线)系列
- c# - 显示前 10 行,同时从数据表加载更多 4000 行
- c# - c# DataTrigger 故事板问题
- powershell - 使用具有不同参数的 powershell 脚本
- c# - C# - 使用 EndofLoop 无法获得正确的结果
- raspberry-pi - Raspberry Pi 将 USB 麦克风重定向到 hdmi 音频
- node-red - 客户需要一个帐户 SID
- c++ - C ++:将整数分配给整数指针