所以我有一个主菜单UIViewController,然后呈现一个新的UIViewController,其中包含一个包含SKScene的SKView。我没有设置内部的代码,除了使层次结构工作的基本要素。
问题在于,当SKScene视图委托其UIViewController自身调用self.dismissViewControllerAnimated(true, completion: {})
时,有时会发生UIViewController解除分配,然后SKScene解除分配的预期行为(我通过记录deinit来检查这一点)每种方法)。但只有一半的时间只有UIViewController才能解除分配,让SKScene仍然活着。跑步(虽然不可见)。当发生这种情况时,SKScene仍将运行直到您按下遥控器上的任何触摸或按钮,然后SKScene将停止运行&最后dealloc!
任何人都可以告诉我为什么会这样吗?有些东西随机地强烈引用了SKScene。这可能与焦点或触摸有关吗?!
更新:
我正在打电话,似乎与焦点或焦点引擎无关
setNeedsFocusUpdate()
&菜单UIViewController出现后updateFocusIfNeeded()
。焦点得到更新,但它无法解决问题。而且当触摸控制器以杀死SKScene时,甚至在菜单UIViewController中的deinit()
方法之前发生SKScene override func touchesBegan()
!