我有一個MasterViewController遊戲。它有一個「Play」按鈕,可以連接到GameViewController。 GameViewController和GameScene是普通的遊戲版本,除了我在GameScene的更新方法中添加了一個NSLog,並且在故事板上創建了一個從GameViewController跳轉到MasterViewController的「退出」按鈕。如何殺死SKScene
一切按預期工作。我啓動應用程序並觸摸「播放」按鈕,它將轉換到GameViewController到GameScene。好吧,我看到標準的「Hello World」消息,並且可以觸摸來創建旋轉飛船。我開始從更新方法獲取NSLog輸出。大。
但是,當我單擊退出按鈕並且它退回到MasterViewController時,我仍然從GameScene更新方法獲取NSLog輸出,因此GameScene仍然處於活動狀態。我想GameScene消失了。 GameScene增加了一個dealloc,它從來沒有被調用,可能是因爲ARC。
在GameViewController我添加了一個弱gameScene屬性和:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"viewWillDisappear");
[_gameScene removeAllChildren];
[_gameScene removeAllActions];
[_gameScene removeFromParent];
_gameScene = nil;
}
仍然得到從GameScene更新方法輸出的NSLog的。嘆...我怎麼殺死GameScene死亡,死亡,死亡?
我做了幾次Play/Quit/Play/Quit轉換。從更新方法的輸出是:
2014-11-20 12:48:41.551 Demo[7386:2004098] update: 0x7b091090
2014-11-20 12:48:42.095 Demo[7386:2004098] update: 0x7ed21020
2014-11-20 12:48:42.656 Demo[7386:2004098] update: 0x7eb1c4b0
2014-11-20 12:48:43.217 Demo[7386:2004098] update: 0x7b091090
2014-11-20 12:48:43.762 Demo[7386:2004098] update: 0x7ed21020
2014-11-20 12:48:44.322 Demo[7386:2004098] update: 0x7eb1c4b0
我GameScenes的因此,所有仍然在後臺運行。
您的segue&GameViewController創建工作如何?是否有一個塊捕獲GameViewController並掛在它上面? GameViewController以某種方式捕獲自己? – mc01 2014-11-20 19:02:35
使用故事板我在MasterViewController上放置了一個Play按鈕,並在GameViewController上放置了一個Quit按鈕,並在每個按鈕與其他控制器之間拖拽控制器來設置segues。普通香草的東西。我創建了這個演示項目只是爲了探索這個,並沒有做任何特別的事情。 – Drew 2014-11-21 14:05:46