我的应用程序 A->B->C 中有三个 VC(A&B 有 SKView,其中有一个 SKScene)。
应该运行以下场景:
A(按下按钮)->B(播放场景,完成)->C(几个按钮和UILabel,也从游戏中心加载信息)。当我从 C->A (popToRootViewController) 弹出时,一切正常(尽管我认为曾经见过一次内存泄漏)。
问题是当我按下一个从 C->B 执行 popViewController 的按钮时。
在第一次工作时,B 再次加载,而当涉及到 C 时,第二次UIView
动画将无法工作。同样,当 I 时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 切换,应用程序也会崩溃(有时它会显示黑色视图,有时会崩溃)。
怎么了?谢谢!