Jam*_*rpe 13 uinavigationcontroller push-notification uiapplicationdelegate pushviewcontroller ios
我有一个接收推送通知的应用程序.在didReceiveRemoteNotifications中,我想让应用程序在应用程序的导航控制器中显示一个特定的视图控制器(恰好是根视图控制器).实现这一目标的最佳方法是什么?我可以在应用程序委托中获得对导航控制器的引用吗?
编辑:这是我正在尝试使用的代码.它似乎使用正确的导航控制器,但它根本不显示视图控制器,只是一个空白屏幕:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
EventDetailViewController *destCon = [storyboard instantiateViewControllerWithIdentifier:@"EventDetailViewController"];
destCon.event=notifyEvent;
UINavigationController *navController =(UINavigationController *) self.window.rootViewController;
[navController pushViewController:destCon animated:YES];
Run Code Online (Sandbox Code Playgroud)
这是我所看到的:

rde*_*mar 50
如果您的导航控制器是窗口的根视图控制器,那么您可以使用
(UINavigationController *)self.window.rootViewController
Run Code Online (Sandbox Code Playgroud)
从应用程序委托访问您在故事板中创建的那个.
u.g*_*gen 10
我使用下面的东西它适用于我,尝试修改您的用法
Stoaryboard 是您的故事板的名称,当您收到通知时,您可以调用您的rootview LoginViewController
确保接口构建器中的viewcontroller设置为 yourControllerName以下示例LoginView
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
//replace and push rootview manually
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
LoginViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:ivc];
self.window.rootViewController =nil;
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30131 次 |
| 最近记录: |