【问题标题】:iOS pushNotice redirect - stroyboardiOS 推送通知重定向 - 故事板
【发布时间】:2015-04-13 15:57:59
【问题描述】:

我想在应用程序外触摸推送通知警报时重定向到特定视图。我已经写了一些这样的代码......

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
{
  if (application.applicationState != UIApplicationStateActive){
    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    ChatViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"ChatView"];                           
    [self.window.rootViewController presentViewController:vc animated:YES completion:nil];
  }
}

它确实重定向到了chatViewController,但只启动了chatViewController。我是否必须写下我的应用程序的整个 Controller 结构,还是有其他方法可以这样做?

我的应用程序的结构是一个带有四个选项卡的 UITabBarViewController...

tab1 > UINavigationController > UICollectionViewController > UIViewController

tab2 > UINavigationController > UICollectionViewController

tab3 > UINavigationController > UITableView > UITableView(chatViewController)

tab4 > UITableView

【问题讨论】:

    标签: ios push-notification


    【解决方案1】:

    我认为您应该创建视图控制器堆栈。

    首先你说push到第一个table view controller,提到它一个push来了。您可以调用推送构造函数。下面是 UITableViewController* 中的代码。

    tab3 > UINavigationController > UITableViewController。

    - (id)initWithPush:(Chart*)chart {
        self  = [self initWithNibName:<#(NSString *)#> bundle:<#(NSBundle *)#>];
        if (self) {
            [self pushToChart:chart];
        }
        return self;
    }
    
    
    - (void)pushToChart:(Chart*)chart {
        // add the code to push to next Chart-View-Controller
    }
    

    【讨论】:

    • 我应该将 UITabBarController 设置为 rootViewController 并像我在 storyboard 中那样设置它的 viewControllers 吗?
    【解决方案2】:

    我找到了如何在情节提要中获取 viewController。所以我可以直接这样做...

        UITabBarController *tab = (UITabBarController *)self.window.rootViewController;
        UINavigationController *nav = tab.viewControllers[0];
        tab.selectedViewController = nav;
        myViewController *vc = (ChatListViewController *)nav.topViewController;
        [vc.navigationController pushViewController:vc animated:YES];
    

    【讨论】:

      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      相关资源
      最近更新 更多