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

时间:2016-02-23 11:29:39

标签: swift uiviewcontroller swift2 segue

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

我有一个包含多行的tableView,当一行被执行时,我调用webViewController来播放选择的sess的资源

performSegueWithIdentifier("Play", sender: nil)

关联:

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

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

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

navigationController.popViewControllerAnimated(true)

我再次使用segue goBack:

performSegueWithIdentifier("closePlayer", sender: nil)

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

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

如何正确地摧毁'场景改变时的视图

2 个答案:

答案 0 :(得分:5)

如果是模态segue,您可以使用

dismissViewControllerAnimated(true, completion: nil)

关闭webViewController而不是另一个segue

答案 1 :(得分:5)

Swift3:

self.dismiss(animated: true, completion: nil)

希望它可以帮到你。

由于