iphone - 收到推送通知时如何打开另一个屏幕而不是主屏幕

标签 iphone objective-c push-notification xcode4.5 apple-push-notifications

我需要知道如何在收到推送通知时打开另一个 View Controller 而不是主视图 Controller 请帮助我提前谢谢这是我的代码“

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    sleep(2);
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
 (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    NSUserDefaults* ud = [NSUserDefaults standardUserDefaults];
    consumerId = [[ud objectForKey:@"consumerId"] intValue];

    couponSql = [[CouponsSqlClass alloc] init];

   if (consumerId == 0) {
        self.viewController = [[LandingPageViewController alloc] initWithNibName:@"LandingPageViewController" bundle:nil];
        self.window.rootViewController = self.viewController;
   }
   else {
        application.applicationIconBadgeNumber = 0;

        EditProfileViewController* mainViewController = [[EditProfileViewController alloc] initWithNibName:@"EditProfileViewController" bundle:nil];
        _mainViewNavController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
        KluebookMenuViewController* leftSideMenuViewController = [[KluebookMenuViewController alloc] initWithNibName:@"KluebookMenuViewController" bundle:nil];
        self.deskController = [[IIViewDeckController alloc] initWithCenterViewController:self.mainViewNavController leftViewController:leftSideMenuViewController];
        self.deskController.leftLedge = 60;
        self.window.rootViewController = self.deskController;
    }
    [self.window makeKeyAndVisible];

    return YES;
}

最佳答案

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    if (launchOptions != nil) {
         // Launched from push notification
         NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
         //Redirect it to your page here
    }
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if ( application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground  )
    {
         //opened from a push notification when the app was on background
         //Redirect it to your page here
    }
}

关于iphone - 收到推送通知时如何打开另一个屏幕而不是主屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056535/

相关文章:

ios - 如何使用dismissViewController发回数据

objective-c - 如何有效分配 NSStatusItem 图像和备用图像?

ios - 如何在 iOS 10+ 中自定义通知的简短预览

iphone - 离线时无法在具有缓存 list 的移动 Safari 中工作

ios - 如何制作支持 ActivityViewController 的应用程序?

ios - 应用内购买下载永远不会被下载

ios - 写入错误的目标地址格式时,MFMailViewComposer 不会返回错误

ios - 登录前处理推送通知信息

用于开发和生产的 iOS 推送通知设备 token

iphone - 在 iPhone 上以编程方式制作音乐?