我需要从app delegate提供一个视图控制器。
当手机通知进来时,我可以通过分析用户信息来判断3个视图控制器中的哪一个(名为ForumViewController,BlogViewController& NewsViewController)。在方法' didReceiveRemoteNotification'。
但是当我尝试使用故事板或下面的代码呈现适当的视图控制器时:
self.viewController = [[MembersViewController alloc] initWithNibName:@"MembersViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
然后,应用程序发出错误'警告:尝试显示其视图不在窗口层次结构中!'。它也卡在特定的视图控制器上。
请记住,我尝试呈现的视图控制器不是应用程序启动时的流程的一部分(流程是LogoViewController - > SplashViewController - > HomeViewController)。
HomeViewController& MembersViewController本质上是public&的主菜单页面。私人观看。在这里,我必须向观众展示一些东西。
答案 0 :(得分:1)
<强>选择-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];
<强> upadted 强>
UIStoryboard *mainstoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
MembersViewController* pvc = [mainstoryboard instantiateViewControllerWithIdentifier:@"MembersViewController"];
[self.window.rootViewController presentViewController:pvc animated:YES completion:NULL];
答案 1 :(得分:1)
从故事板加载视图控制器:
[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。