簡體   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