2016-03-03 3 views
0

От firstController, я стараюсь переключить ViewController:PushViewController не работает - Deinit называется

let player = self.storyboard?.instantiateViewControllerWithIdentifier("WK_player") as? WKViewController 
self.navigationController?.pushViewController(player!, animated: true) 

Но не появляется WKViewController и непосредственно вызывать его Deinit.

работы Это хорошо

performSegueWithIdentifier("WK_Play", sender: nil) 

Но с этим, dealloc никогда не дозвонились, когда я закрываю игрока и сохранить существующие в памяти.

dismissViewControllerAnimated(true, completion: nil) 

В чем проблема?

+0

является '' self.navigationController' nil' случайно? – SmokeDispenser

ответ

1

Проблема для утечки памяти - это не performSegueWithIdentifier("WK_Play", sender: nil). Вероятно, проблема заключается в том, что у вас есть сильная ссылка где-то в WK_Play VC, которая не удаляется, поэтому VC не может быть освобожден.

Вы также можете просто попробовать дарящую, но я уверен, что утечки памяти останутся:

let player = self.storyboard?.instantiateViewControllerWithIdentifier("WK_player") as? WKViewController 
self.presentViewController(player, animated: true, completion: nil) 
+0

Да, я разрешаю свою проблему, используя коммутатор VC с UINavigationConroller. Благодаря ! – Khorwin

Смежные вопросы