在 Modal Segue 之后从内存中删除 UIViewController
Remove UIViewController from memory after Modal Segue
我在 UIViewController 'A'。我正在展示(Modally - Cross Dissolve)UIViewController 'B'.
呈现'B'后,当我touch/tapView时,'A'的TouchesBegan
被触发。所以我想我需要在 'B' 出现后从内存中删除 'A'。
我试过了:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "gameLevel"
{
if let viewController: ViewController = segue.destinationViewController as? ViewController {
self.dismissViewControllerAnimated(false, completion: nil)
}
}
}
Dosent 似乎有效。关于如何在我移动到 'B' 后 从内存中删除 'A' 的任何建议?
我不明白你为什么要这样做。如果你正在展示一个视图控制器,你的用户体验设计应该让用户回到它。这是预期的设计;如果您不想要这种体验,请不要使用 presentViewController:animated
。
此外,SDK 中也没有执行此操作的 hack。如果您查看文档,这对您来说会很明显,presentingViewController
是一个强有力的参考。
您可能想要删除所有视图层次结构并设置应用委托的 rootViewController
属性。您可能看不到动画;但是底层视图控制器可能被释放。
我在 UIViewController 'A'。我正在展示(Modally - Cross Dissolve)UIViewController 'B'.
呈现'B'后,当我touch/tapView时,'A'的TouchesBegan
被触发。所以我想我需要在 'B' 出现后从内存中删除 'A'。
我试过了:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "gameLevel"
{
if let viewController: ViewController = segue.destinationViewController as? ViewController {
self.dismissViewControllerAnimated(false, completion: nil)
}
}
}
Dosent 似乎有效。关于如何在我移动到 'B' 后 从内存中删除 'A' 的任何建议?
我不明白你为什么要这样做。如果你正在展示一个视图控制器,你的用户体验设计应该让用户回到它。这是预期的设计;如果您不想要这种体验,请不要使用 presentViewController:animated
。
此外,SDK 中也没有执行此操作的 hack。如果您查看文档,这对您来说会很明显,presentingViewController
是一个强有力的参考。
您可能想要删除所有视图层次结构并设置应用委托的 rootViewController
属性。您可能看不到动画;但是底层视图控制器可能被释放。