我看到過許多類似的SO問題,並且據我所見,所有這些問題都表明我們不應該在當前視圖viewWillAppear時推送/彈出任何視圖未被調用或'isViewLoaded'調用返回false。在我的實例中,我嘗試在當前視圖'viewWillAppear'方法中推送一個新視圖,在我推送它之前,我還調用[self isViewLoaded]來查看當前視圖是否已加載(這是),但我仍然不斷收到上述錯誤。UIViewController的開始/結束外觀轉換的不平衡調用
我能夠解決這個問題(這是一個黑客)的唯一方法是睡眠幾秒鐘,然後再調用另一個非UI線程。
由於在調用實際進行推送工作之前睡了幾秒鐘,我認爲雖然'viewWillAppear'已經被調用並且[self isViewLoaded]爲true,但推動/彈出另一個視圖有時候還爲時過早(也許對動畫仍然不完整?)。
我我錯過了什麼?除了'viewWillAppear'或[self isViewLoaded]之外,還有其他一些方法可以指示%100視圖已經完全加載並且所有動畫都已完成,因此我可以安全地推送/彈出其他視圖?
謝謝你今天晚些時候會試試,並告訴你是否可行(現在需要離開)。我同意這不是最好的設計,但基本上當我實例化第一個視圖時,我也做了一個web服務調用並獲取一些數據。根據數據,我將保持相同的視圖或導航到不同的視圖。此時重構此流程不是一種選擇,除非一切都失敗。 – DarkAPI
剛剛嘗試過你的建議,它的工作原理。謝謝。 – DarkAPI