2015-05-06 34 views
0

我有顯示下一個視圖控制器當事情完成以下ViewControllers:試圖提出 - 視圖 - 控制器警告

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,依此類推。

現在,我得到加班費如下警告:

警告:試圖提出GameViewController上level2ViewController 誰的觀點是不是在窗口層次!

+0

[其視圖不在窗口層次結構中]的可能重複(http://stackoverflow.com/questions/11862883/whose-view-is-not-in-the-window-hierarchy) –

+0

你是否永遠創建新的視圖控制器? 'GameViewController'實例化了一個'level2ViewController',它實例化了一個'GameViewController',其中... –

+0

視圖控制器在我的故事板中,並且我只想給它們打電話而沒有segues – iOSBeginner

回答

1

請勿從viewDidLoad提交視圖控制器,而應從viewDidAppear:調用。同樣使用dispatch_after(假設您正在使用它來確保視圖在屏幕上,而不是用於遊戲目的)是非常糟糕的做法。
當呈現正被裝載做了視圖控制器(當這種情況發生viewDidAppear:稱),你可以提出一個不同:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    GameViewController *gvc = [self.storyboard instantiateViewControllerWithIdentifier:@"gameViewController"]; 
    [self presentViewController:gvc animated:NO completion:nil]; 
} 
+0

但在我的遊戲中,我無法從viewdidappear調用它。我想在調用方法CheckGameFinished時調用它...對於其他視圖控制器,它按照預期工作,謝謝 – iOSBeginner

+0

我指的是您的第二段代碼,它試圖從'viewDidLoad'呈現視圖控制器。 –

+0

oh ok ,這現在完美的工作,謝謝 – iOSBeginner

0

我得到這個當我segue類型爲modal,更改爲push爲我修復它

相關問題