我有三個VC在我的應用程序A-> B-> C(A & B有SKView與SKScene在其中)。UINavigationController popViewController bug
以下場景應該運行:
A(按下按鈕) - > B(播放場景,完成) - > C(幾個按鈕和UILabels,也從Game Center加載信息)。 當我從C-> A(popToRootViewController)彈出時,一切正常(儘管我曾經看到內存泄漏一次,我認爲)。
問題是,當我按下一個按鈕,從C-> B做popViewController。
在第一次工作時,B再次加載,而當涉及到C時,第二次動畫將不起作用。同樣,當我在NSLog self.navigationController.viewControllers
中顯示(當C彈出後從B-> C轉換時)有2個C視圖控制器 - C已經創建兩次(從C-> B刪除,然後創建兩次)!
考慮這種情況:
AViewController: 0x17683d80,
BViewController: 0x1c956720
當B被加載(選自C稱爲popViewController之後)第二次,然後
"AViewController: 0x17683d80",
"BViewController: 0x1c956720",
"CViewController: 0x1ca49e40",
"CViewController: 0x1ca4c6c0"
當C後的NSLog'd第二次加載。如果我第二次嘗試從C-> B(有時會顯示黑色視圖,有時會崩潰),該應用也會崩潰。
發生了什麼事? 謝謝!
問題並不是緩慢的解僱。問題是一個非解僱(不彈出!) –
所以上述沒有幫助我猜。 – DogCoffee
當你從C到B的skView,最有可能的是,如果你不使用像上面那樣的iVar,那麼正在創建一個新的實例,就像你在日誌中記錄的那樣。設置一個iVar應該修復的問題 – DogCoffee