因此,在iOS應用程序中,我使用UINavigationController作爲根視圖控制器。然後我推了幾ViewControllers在棧上,讓我們稱他們爲A,B,C和D.UINavigationController不斷顯示彈出視圖
現在,如果我嘗試從棧中彈出d,我有時 *遇到以下問題:調用 後popViewControllerAnimated,最上面的視圖控制器(D)的視圖仍然存在。但是,如果我顯示堆疊,它會正確顯示,即顯示A-B-C並且D不見了。流行的方法似乎只是做它應該的,但是這個觀點並沒有反映出這一點。
我嘗試了各種其他方法,(popToRootViewController,popToViewController),但行爲不會改變(即堆棧打印正確,但D的視圖仍然存在)。我在所有看起來有意義的視圖上都調用了setNeedsDisplay。
彈出D後,我仍然可以推動並刪除其他視圖控制器。堆棧反映了這些變化,視圖沒有。此外,D的觀點仍然具有響應性,即它不會被凍結,並且應用程序在後臺的行爲正確。所有視圖都非常簡單,沒有標籤視圖或類似內容,只是一些標籤和按鈕。
我已經閱讀了許多關於SO和其他地方關於有類似問題的人的帖子,但沒有一個解決方案似乎適合在這裏。有誰知道爲什麼會發生這種情況?
* _我一直無法弄清楚在什麼情況下。我首先想到這是因爲我推D後很快就會彈出D,但它也偶爾會發生在推送和流行之間有更多時間。
你在使用故事板嗎?你有沒有設置任何的細節,或者你是否在推動代碼? – rdelmar 2014-11-24 20:06:45
對不起,應該提到這一點。我用代碼完成所有工作,我不使用故事板。我創建了一個UINavigationController子類的實例,並創建了ViewController子類實例,我將其推送到堆棧並全部以代碼形式彈出。 – doubleYou 2014-11-25 13:22:02
這聽起來像是你正在做的一切正確,所以這將很難弄清楚,特別是如果你不能可靠地重現問題。我從未在任何項目中看到過類似的東西。 – rdelmar 2014-11-25 15:51:32