我收到一个pust通知,并根据我推送的数据推送一个视图控制器。 我是这样做的:
UINavigationController *navVc=(UINavigationController *) self.window.rootViewController;
PictureTakeVC *pvc=[[PictureTakeVC alloc] init];
[navVc pushViewController:pvc animated:NO];
它可以工作,但在我按下主页按钮之前打开的视图控制器显示了一下。
我也尝试了这个但是它发生了同样的事情:
PictureTakeVC *pvc=[[PictureTakeVC alloc] init];
NSArray *vcs=[[NSArray alloc] initWithObjects: pvc, nil];
UINavigationController *navVc=(UINavigationController *) self.window.rootViewController;
navVc.viewControllers=vcs;
self.window.rootViewController = navVc;
如何推送vc didReceiveRemoteNotification以便立即打开,暂时不显示其他vc?
答案 0 :(得分:1)
由于PictureTakeVC
是一个视图控制器,所以只需使用它
PictureTakeVC *pvc = [[PictureTakeVC alloc] initWithNibName:@"PictureTakeVC" bundle:nil];
[self.navigationController pushViewController:pvc animated:YES];
答案 1 :(得分:1)
在您的应用进入后台模式之前,请移除该处的视图。
答案 2 :(得分:1)
didReceiveRemoteNotification
将触发。
...但无论如何,如果你想实现你所要求的,你必须检测到来自didFinishLaunchingWithOptions
(或者可能来自applicationDidBecomeActive
或applicationWillEnterForeground
)的推送通知并推送rootviewcontroller上的viewcontroller来自其中一种方法。
检测是否有远程通知:
NSString *params = [[launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"] objectForKey:@"View"];
if (params)
{
// push view
}
使用以下方法推送视图,当应用程序被激活时,您将看不到任何其他vc。如果有任何问题,请告诉我。
- (void)applicationWillEnterForeground:(UIApplication *)application
{
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
}
我已经为推送通知做了类似的事情,所以如果我理解错误,请告诉我你想要达到的目的。