每次从通知中引导您时,请更换您的导航堆栈。假设这FirstViewController
是您单击后退按钮后想要返回的位置。并且SecondViewController
是您点击警报时想要去的地方。
因此,每次您从通知中引用时,将导航堆栈替换为
FirstViewController *objFirstViewController = [[FirstViewController alloc] initWithNIBName: @"FirstViewController" bundle: nil];
SecondViewController *objSecondViewController = [[SecondViewController alloc] initWithNIBName: @"SecondViewController" bundle: nil];
NSArray *aryControllers = [NSArray arrayWithObjects: objFirstViewController,objSecondViewController, nil];
[self.navigationController setViewControllers: aryControllers animated: YES];
[objFirstViewController release];
[objSecondViewController release];
当您从呈现的视图中弹出时,您将始终获得FirstViewController
. 以上是针对您的应用不在后台(或已关闭)的情况。对于您的应用处于后台以及收到通知时的情况,
从 AppDelegateapplication:didReceiveRemoteNotification:
中,您可以像正常推送一样推送视图。然后它将返回到您收到通知之前所在的上一页。(假设您在整个项目中使用全局导航控制器)
很高兴这对您有帮助。