PushViewController不起作用 - deinit调用

时间:2016-03-03 13:02:15

标签: ios swift pushviewcontroller

从firstController,我尝试切换viewController:

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)

有什么问题?

1 个答案:

答案 0 :(得分: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)