3

当特定的推送通知通过时,我试图改变视图,但我取得了小小的成功。(使用带有推送通知的解析,以适应应用程序的打开和关闭时间)。

我的故事板看起来像这样,我正在尝试将 AppDelegate 中的视图更改为 DetailViewController。 在此处输入图像描述

现在我可以通过更改根控制器来更改视图,但我只能附加我的选项卡视图或导航,不能同时附加两者。

 UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
    DetailViewController *detail = (DetailViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"detail"];
    [detail setDetailItem:StreamData[2]];

    self.window.rootViewController = detail;

当然,(下文)的使用仅适用于其他控制器。

[self.navigationController pushViewController:detail animated:YES];

我想知道这是否可以通过 AppDelegate 实现,同时保持底部的标签栏和顶部的导航?

我最初的工作是将 AppDelegate 的触发器设置为可从所有控制器访问的全局变量,然后使用 viewDidAppear 之类的东西来检查他们的视图是否需要更改。虽然这似乎太耗费资源,但它维护了我的布局。

我的问题与此类似:在收到通知后,从应用程序委托的标签栏中推送视图控制器

4

1 回答 1

5

我已经解决了你的问题。创建了一些场景,不确定它是否适用于您的情况。无论如何试一试

我的故事板

在此处输入图像描述

我做了什么

 UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

[(UITabBarController *)self.window.rootViewController setSelectedIndex:1];
UINavigationController *nav = [[(UITabBarController *)self.window.rootViewController viewControllers]objectAtIndex:1];
UIViewController *detail = [mainStoryboard instantiateViewControllerWithIdentifier:@"detail"];
[nav pushViewController:detail animated:NO];

这给了我带有按钮的详细视图控制器作为带有标签栏和导航控制器的第一个视图

于 2013-05-24T08:04:32.673 回答