【发布时间】:2015-07-16 14:07:29
【问题描述】:
我有以下 ViewController 在完成某事时会显示下一个 ViewController:
Nr1:我的 GameViewController 检查游戏是否已完成并调用 CheckGameFinished:
-(void) checkGameFinished {
if ([self.gameModel isGameOver]) {
double delayTimeInSeconds = 3.5;
dispatch_time_t popTimeDelay = dispatch_time(DISPATCH_TIME_NOW, delayTimeInSeconds * NSEC_PER_SEC);
dispatch_after(popTimeDelay, dispatch_get_main_queue(), ^(void){
[progressBarTimer invalidate];
level2ViewController *govc = [self.storyboard instantiateViewControllerWithIdentifier:@"level2ViewController"];
[self.finishAudio play];
[self presentViewController:govc animated:NO completion:^(){
[self.gameModel clearGameData];
}];
});
}
}
然后出现level2ViewController:
- (void)viewDidLoad {
[super viewDidLoad];
double delayTimeInSeconds = 2;
dispatch_time_t popTimeDelay = dispatch_time(DISPATCH_TIME_NOW, delayTimeInSeconds * NSEC_PER_SEC);
dispatch_after(popTimeDelay, dispatch_get_main_queue(), ^(void){
GameViewController *gvc = [self.storyboard instantiateViewControllerWithIdentifier:@"gameViewController"];
[self presentViewController:gvc animated:NO completion:nil];
});
}
并调用下一个 ViewController,以此类推。
现在我超时收到以下警告:
警告:尝试在 level2ViewController 上呈现 GameViewController 其视图不在窗口层次结构中!
【问题讨论】:
-
您是否一直在创建新的视图控制器?
GameViewController实例化了一个level2ViewController,它实例化了一个GameViewController,它...... -
视图控制器在我的情节提要中,我只想在没有转场的情况下调用它们
-
视图控制器在内存中;它的描述在情节提要中。每次调用“实例化...”时,都会创建一个新的。
-
哦,好的,感谢您提供此信息。那么我该如何“修复”我的问题呢? Dealloc 调用后?
标签: ios objective-c uiviewcontroller