谁的视图不在窗口层次结构问题中

我已经设置了一个navController,它在点击按钮后出现。 但是,如果我点击按钮,我会收到以下错误:“ Warning: Attempt to present : 0xab5d9d0 on whose view is not in the window hierarchy!

有谁知道如何解决这个问题? 我也尝试过Stackoverflow,但这不是我的解决方案。

这里是我打开navigationcontroller的代码:

我不知道是否有人知道这个照相馆,但如果你不知道, 这是项目。

我的代码(MyApp.m):

 #import MyApp.h ... //some stuff - (void)launchGalleryView { MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self]; // Set browser options. browser.wantsFullScreenLayout = YES; browser.displayActionButton = NO; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:browser]; NSMutableArray *photos = [[NSMutableArray alloc] init]; MWPhoto *photo; photo = [MWPhoto photoWithFilePath:[[NSBundle mainBundle] pathForResource:@"callculator" ofType:@"jpg"]]; photo.caption = @"The calculator is soo beateful..."; [photos addObject:photo]; self.photos = photos; [self presentModalViewController:navController animated:NO]; } 

提前致谢。

编辑:

它在资源和编译源中,但在资源中你可以看到它是红色的(故事板)。 也许是由此造成的?

第二个控制器.h:

 @class MyApp; @interface Second : UIViewController  { } @property (nonatomic, retain) MyApp* vC; @end 

Secnond控制器.m:

 #import "Second.h" #import "MyApp.h" @interface Second () @end @implementation Second @synthesize vC; //some stuff in here //the action - (IBAction)dothis:(id)sender { NSLog(@"launch the navcontroller"); [self.vC launchGalleryView]; } 

MyApp.h:

 #import "Second.h" @interface myApp : UIViewController  { } -(void)launchGalleryView; NSArray *_photos; 

在此处输入图像描述

新编辑:

我发现我必须在viewDidAppear中调用方法“launchGalleryView”但是如何在每次加载视图时都不调用navcontroller来执行此操作? 有谁知道如何做到这一点?

我检查了你的项目..无法解决正确的问题..

但我尝试了一个黑客,它的工作..

用这个替换

 [self presentModalViewController:navController animated:YES]; 

这个

 [[[[[UIApplication sharedApplication] delegate] window] rootViewController] presentModalViewController:navController animated:YES];