Xcode 在情节提要中使用推送通知打开特定视图

Posted

技术标签:

【中文标题】Xcode 在情节提要中使用推送通知打开特定视图【英文标题】:Xcode open specific view with push notifications in storyboard 【发布时间】:2013-09-19 04:49:51 【问题描述】:

在我的代码中,我是这样写的

DetailView *vc = (DetailView *)[mainStoryboard instantiateViewControllerWithIdentifier:@"DetailVC"];

self.window.rootViewController = vc;

它只显示该视图,但我没有看到导航栏和标签栏。

当应用自动接收远程通知时,在故事板中打开特定视图(在 tabbarcontroller 内)的正确方法是什么?

【问题讨论】:

【参考方案1】:

那是因为您只能从情节提要中获得 DetailView。如果你想在导航控制器中显示它,你必须初始化这个控制器。

DetailView *vc = (DetailView *)[mainStoryboard instantiateViewControllerWithIdentifier:@"DetailVC"];
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController: vc];
self.window.rootViewController = navVC;

但我认为问题出在其他方面。您实例化了错误的视图控制器。您应该实例化标签栏控制器或导航控制器,然后只选择正确的标签。

【讨论】:

假设我有三个视图控制器,我是否必须实例化它们并将其全部添加到标签栏控制器中? 情节提要中有标签栏控制器吗? 是的,我有那个控制器。 你应该实例化标签栏控制器。并选择合适的控制器。 我是否必须设置该标签栏控制器的标识符以便实例化它?

以上是关于Xcode 在情节提要中使用推送通知打开特定视图的主要内容,如果未能解决你的问题,请参考以下文章

接收远程推送通知时打开视图控制器

情节提要:导航的条件转场(推送)

在情节提要中推送多个视图控制器

每次我打开情节提要时视图错位

以编程方式设置 rootViewController 不起作用,仅在 Xcode 11 中从情节提要中选择初始视图控制器

需要在特定秒内在 App Delegate 中显示一个特定视图 [关闭]