我有一个当前使用推送通知的应用,我们已经开始尝试从JSON推送中打开应用的特定页面。
这是可能打开的一个页面的代码:
//Extract the notification data
if let notificationPayload = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary {
// Get which page to open
let viewload = notificationPayload["view"] as? NSString
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
//Load correct view
if viewload == "videos" {
let mainStoryboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController : UIViewController = mainStoryboard.instantiateViewControllerWithIdentifier("Videos") as! UIViewController
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
}
}
问题是这样做会跳过允许汉堡菜单在侧面打开的viewcontroller。
有没有办法打开汉堡菜单控制器并从推送中加载正确的视图?
如果您需要更多信息,请告知我们,我会根据需要发布更新
答案 0 :(得分:0)
您通常不应该创建新窗口并设置根视图控制器。至少如果你没有让根视图控制器成为你的应用程序的真正根VC,并要求它显示你推送的特定内容。
通常,您的根VC应该理解可能需要显示特定的VC(来自推送或其他地方)并为应用委托提供一种方法。这可以通过转发请求直到某个VC可以处理它来实现,它可以简单地将其推送到导航控制器,它可以发布通知,或者它可以呈现模态。
有许多潜在的选择,您需要确定哪个选项适合您的应用,但重要的是它与现有的视图层次结构相关联而不是替换它。