1

我想僅在第一次顯示主視圖控制器時顯示視圖一次。如何防止在另一個視圖控制器中顯示視圖控制器時出現閃爍

-(void) viewDidAppear:(BOOL)animated 
{ 
    if (!self.isMainViewShowedBefore) 
    { 
     self. self.isMainViewShowedBefore = YES; 

     UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController: temporaryViewController]; 

     [self presentViewController:navigationController animated:NO completion:NULL]; 
    } 
} 

它可以正常工作,但臨時視圖控制器顯示之前短暫出現主屏幕。

我試圖在viewWillAppear中添加上面的代碼,但我得到了以下錯誤

「NSInternalInconsistencyException」,理由是:「試圖從開始到 一個 模式轉變而轉變已經在 進展。等待viewDidAppear/viewDidDisappear知道當前 過渡已經完成了」

如何隱藏主控制器顯示在臨時視圖控制器之前?

回答

0

您在viewWillAppear中得到了錯誤,因爲您無法在iOS中同時執行兩個動畫,它可能會讓您的應用程序崩潰,但大部分時間iOS對我們很好,它只是給我們一個警告。

現在我主要關心的是,爲什麼要添加這個主視圖控制器,如果你根本不想使用它?這不閃爍,這是一個正常的行爲,如果你想UINavigationController出現,只需播種它而不是這個「主視圖控制器」。

如果你有更多隱藏的邏輯會阻止你做我說的話,請告訴我。

+0

這是一個照片應用程序,我想裁剪時加載第一次的照片。 – zontragon 2014-09-01 20:22:04

+0

和作物視圖控制器是第三方控制器,我不想改變它 – zontragon 2014-09-01 20:24:08

1

添加temporaryViewController.view作爲self.view一個子視圖(您的主視圖控制器)

[self.view addSubview:temporaryViewController.view]; 
相關問題