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

时间:2015-03-25 04:17:22

标签: push-notification segue appdelegate swrevealviewcontroller

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

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我在这类案件中所做的是

您可以检查launchOptions是否为didFinishLaunchingWithOptions

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