如何在执行segue后销毁视图控制器的实例

Kho*_*win 4 uiviewcontroller segue swift swift2

我使用performSegueWithIdentifier在视图控制器之间导航

我有一个包含多行的tableView,当一行被操作时,我调用webViewController来播放选定的ressource与segue

performSegueWithIdentifier("Play", sender: nil)
Run Code Online (Sandbox Code Playgroud)

关联:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if(segue.identifier == "Play") {
        let detailVC = segue.destinationViewController as! WebViewController
        detailVC.courseToPlay = self.courseToPlay
    }
}
Run Code Online (Sandbox Code Playgroud)

而且,在WebViewController上,我在列表上有一个goBack按钮,我想在goBack上销毁webViewController的实例

我的storyBoard中没有NavigationController,所以,这行不起作用

navigationController.popViewControllerAnimated(true)
Run Code Online (Sandbox Code Playgroud)

我再次使用segue goBack:

performSegueWithIdentifier("closePlayer", sender: nil)
Run Code Online (Sandbox Code Playgroud)

但每个segue动作实例都是一个新的视图控制器,它们从来没有真正从记忆中解脱出来,它们似乎只是隐藏起来

例如:在Safari调试器中,我可以看到很多页面,我总是可以在控制台中与这些页面进行交互

如何在场景变化时正确"破坏"视图

Sou*_*ean 6

Swift3:

self.dismiss(animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

希望它可以帮到你.

谢谢


Rob*_*ado 5

如果它是模态segue你可以使用

dismissViewControllerAnimated(true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

要关闭webViewController而不是另一个segue