ios - SWRevealViewController 在收到推送通知时转到导航控制器中的最后一个视图

ios - SWRevealViewController segue to last view in navigation controller when receive push notification

我在我的项目中使用 SWRevealViewController 2.3.0。我的故事板设计如下: http://i.stack.imgur.com/txv0G.png

当应用程序未 运行(完全终止)并且推送通知到来时,如何获取 详细视图控制器 显示 后退按钮返回主视图控制器?某些通知值应该已传递到详细信息视图。

感谢您的帮助。

我在这种情况下所做的是

你可以检查 launchOptions 是否不为零 didFinishLaunchingWithOptions as

if (launchOptions)
{
    NSDictionary *dic = [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
    [[NSUserDefaults standardUserDefaults] setObject:[dic objectForKey:@"aps"] forKey:@"PushNotification"];
}
else
{
    [[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"PushNotification"];
}

并像我一样保存在用户默认值中。

现在只需当您处于 mainViewController 时,您就可以将其检查为

NSDictionary *notification = [[NSUserDefaults standardUserDefaults] objectForKey:@"PushNotification"];

if (notification)
{
    // check the dictionary "Push Notification" Key Values that you are receiving to go in `DetailViewController` 
    // Now go to `DetailViewContoller` having your details from `PushNotification`by `performSegueWithIdentifier`

    [self performSegueWithIdentifier:@"DetailViewController" sender:self];

    // make this value nil for normal use 
    [[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"PushNotification"];
}

如果这里不把这个userDefaults的值设为nil,在DetailViewController中也可以使用,但是不要忘记用完后设为nil。

使用这种方式,您的 BACK 按钮应该显示在 DetailViewController