【问题标题】:Apple Push Notification Implementation苹果推送通知实现
【发布时间】:2014-11-08 07:11:22
【问题描述】:

我有一个应用程序,我正在尝试在其中实现 apns。 我在设备上收到推送,但无法打开对应的屏幕。

场景是应用程序有一个导航栏作为根视图控制器。它推动一些视图控制器登录。如果登录成功,它会推送一个标签栏控制器并隐藏自己。现在每个标签栏控制器都有一个导航控制器作为其根视图控制器。

当我收到推送时,我想打开第三个标签但无法打开?

请帮忙...

【问题讨论】:

    标签: ios iphone apple-push-notifications push


    【解决方案1】:

    当您收到推送通知时,您可以在该功能中创建实例并保存推送通知页面类型以及创建标签栏的位置,在该选择 3 选项卡中使用此代码通过 if 条件

    if (instancePage == 3){
        [self.tabBarController setSelectedIndex:2];
     }
    

    【讨论】:

      【解决方案2】:

      你必须控制(导航和标签),所以你必须在它们之间切换

      现在您必须更改根控制器以显示标签栏 例如,您获得了使选项卡控制器成为根控制器的推送

      AppDelegate delegate=(AppDelegate *)[[UIApplication sharedApplication] delegate];
      CommonTabViewController *controller=[storyBoard instantiateViewControllerWithIdentifier:@"CommonTabViewController"];
          delegate.window.rootViewController=controller;
      

      然后你可以用[self.tabBarController setSelectedIndex:2];改变你的标签栏

      这是我使用它的情节提要的某些部分的屏幕截图

      【讨论】:

      • 但它建立在故事板上,所以我如何将根视图控制器更改为标签栏控制器,因为我没有标签栏对象
      • 另外,当我收到推送时,我无法将其存储在 appdelegate 对象中,因为我在点击推送时记录了委托对象,但它为 nil。不知道 appdelegate 是否在 didreceivenotification 被调用后启动
      • 试过这个工作,但现在它导致我的第一个视图控制器 viewdidload 方法被多次调用......所以这意味着当我将标签栏控制器作为根视图控制器而不是我的第一个视图的 viewdidload控制器被无限调用
      猜你喜欢
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 2011-09-19
      • 2011-05-19
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多