繁体   English   中英

无法从AppDelegate提供视图控制器

[英]Unable to present a view controller from AppDelegate

我需要提供来自应用程序委托的视图控制器。

收到电话通知时,我可以通过分析方法'didReceiveRemoteNotification'中的'userInfo'来决定应显示3个视图控制器(名为ForumViewController,BlogViewController和NewsViewController)中的哪个。

但是,当我尝试使用情节提要或以下代码提供适当的视图控制器时:

self.viewController = [[MembersViewController alloc] initWithNibName:@"MembersViewController" bundle:nil];
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];

然后,应用程序给出错误“警告:尝试显示其视图不在窗口层次结构中!”。 它还会卡在特定的视图控制器上。

请记住,我要呈现的视图控制器在应用程序启动时不属于流程的一部分(流程为LogoViewController-> SplashViewController-> HomeViewController)。

HomeViewController和MembersViewController本质上是用于公共和私人查看的主菜单页面。 在这里,我必须向观众显示一些东西。

选择1

使用推

 UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
MembersViewController *vc = [navController.storyboard instantiateViewControllerWithIdentifier:@"MembersViewController"];

[navController pushViewController:vc animated:YES];

使用礼物

MembersViewController *root = (MembersViewController *)self.window.rootViewController;
UIViewController *vc = [root.storyboard instantiateViewControllerWithIdentifier:@"MembersViewController"];

[root presentViewController:vc animated:YES completion:NULL];  

翻新

  UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
MembersViewController* pvc = [mainstoryboard instantiateViewControllerWithIdentifier:@"MembersViewController"];
[self.window.rootViewController presentViewController:pvc animated:YES completion:NULL];

从情节提要板加载视图控制器:

[self performSelector: @selector(ShowModalViewController) withObject: nil afterDelay: 0];

-(void)ShowModalViewController{
 NSString * storyboardName = @"MainStoryboard"; 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
    UIViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER_OF_YOUR_VIEWCONTROLLER"];
    [self.window.rootViewController presentViewController:vc animated:YES completion:nil];
}

视图控制器的标识符等于视图控制器的类名,或者可以在情节提要的身份检查器中分配的情节提要ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM