【问题标题】:iOS Show specific viewcontroller via local notificationiOS 通过本地通知显示特定的视图控制器
【发布时间】:2013-12-03 16:36:06
【问题描述】:

我已经在我的应用中实现了本地通知,但我想选择在用户“滑动”通知时显示哪个视图控制器。我的应用是几个视图控制器,它们之间有基本的 segue 导航。

如何选择查看哪个视图控制器?

【问题讨论】:

    标签: ios objective-c uiviewcontroller uilocalnotification


    【解决方案1】:
    -(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
    {
        [[UIApplication sharedApplication] cancelLocalNotification:notification];
    
    
        //My_specificViewController
        RingingViewController *ringingVC = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"RingingViewController"];
        [self.window setRootViewController:ringingVC];
    }
    

    【讨论】:

      【解决方案2】:

      您可以在 application:didFinishLaunchingWithOptions 方法中处理本地通知,然后您可以选择正确的视图控制器:

      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
          // Handle notification
          UILocalNotification *localNotif =
          [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
          UIViewController *vc = nil
          if (localNotif) {
              //base on notification create right view controller
              vc = [[VC alloc] init];
              NSLog(@"Recieved Notification %@",localNotif);
          }
          else
          {
             //create default view controller
              vc = [[VC alloc] init];
          }
      
          // Add the view controller's view to the window and display.
          _window.rootViewController = vc;
          [_window makeKeyAndVisible];
      
          return YES;
      }
      

      【讨论】:

        【解决方案3】:

        Greg 给了你大部分答案,但请注意,除了 didFinishLaunchingWithOptions 之外,你还需要添加一个 application:didReceiveLocalNotification: 方法。一旦您的应用程序运行,该方法就会被调用。我建议将处理本地通知的代码提取到一个方法中并从两个地方调用它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-01-13
          • 1970-01-01
          • 2020-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-23
          相关资源
          最近更新 更多