【发布时间】:2019-08-01 14:54:57
【问题描述】:
我正在开发一个消息应用程序,但在实现推送通知行为时遇到了问题。
我想要的是,当用户点击通知时,该组的对话会打开。但是必须有一个导航栏才能返回联系人列表。
我已经知道如何从通知中提取信息以获取联系人姓名。我正在 AppDelegate 上的函数 didReceive 中尝试这个。
到目前为止,我尝试过的是:
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChatViewController") as! ChatViewController
vc.contactName = name as String
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = vc
self.window?.makeKeyandVisible()
这会打开正确的对话并显示消息,但 UI 元素没有响应(点击文本字段时无法写入,点击按钮时无法导航到图库等),并且没有导航栏。
所以在做了一些研究之后,我尝试了这个:
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChatViewController") as! ChatViewController
vc.contactName = name as String
let rootViewController = self.window?rootViewController as! UINavigationController
rootViewController. pushViewController(vc, animated: true)
这不起作用。没有错误消息,但屏幕只是白色。
这是我的故事板: 我将 SWRevealViewController 用于侧边菜单,消息传递部分有一个 tabBarController,联系人列表位于 2º 选项卡上。
编辑:使用第二种方法,有一个错误。
无法将 'SWRevealViewController 类型的值转换为 UINavigationController'
【问题讨论】:
标签: swift uiviewcontroller push-notification appdelegate