当用户点击推送通知时,是否可以打开具体的 viewcontroller ?
我有新闻应用程序,主视图控制器有很多新闻,当用户点击一些新的我打开下一个viewcontroller与此消息的描述。
当用户点击推送通知时,我如何打开第二个视图控制器?
我尝试将Notification
发送到我的UINavigationController
并推送两个控制器,但它不能正常工作,只打开第一个viewcontroller。
答案 0 :(得分:2)
当您点按本地或推送通知时,您可以处理您的应用,在AppDelegate.m中实施application:didReceiveLocalNotification:
或application: didReceiveRemoteNotification:
方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
}
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
}
如果您的应用已关闭(不在后台),您可以验证是否收到了
中的通知- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSDictionary *userInfo = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
if ( userInfo != nil )
[self application:application didReceiveRemoteNotification:userInfo];
}
我不知道您是如何处理新闻的,但您可以向主视图控制器发布通知,通知您已收到通知,传递“id”或新信息,然后创建第二个视图控制器(您需要验证您MainViewController
的堆栈中是否已创建NavigationController
):
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
[[NSNotificationCenter defaultCenter] postNotificationName:@"IHaveReceivedANotification" object:nil userInfo:userInfo];
}