在不实例化新控制器的情况下弹出查看控制器

Posted

技术标签:

【中文标题】在不实例化新控制器的情况下弹出查看控制器【英文标题】:pop to view controller without instantiating a new one 【发布时间】:2014-12-01 12:04:00 【问题描述】:

我正在为我的应用程序 (Swift) 使用侧面菜单,目前当我点击菜单时,我正在创建一个 ViewController 的新实例。

我有一个加载了一些数据的 UICollectionView,然后我从菜单转到另一个 ViewController,然后当我回到以前的 ViewController 时,UICollectionView 是空的,我必须重新加载数据。

destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("SettingsViewController") as UIViewController
self.setViewControllers([destViewController], animated: true)

我需要找到一种方法来以之前的状态弹出视图控制器。有什么提示吗? 我已经用过self.navigationController.popToViewController,效果一样。我认为问题在于我正在使用创建一个新实例的实例化方法,但我不知道检查是否已经存在一个实例以及如何返回它。

【问题讨论】:

显示你的代码,你不应该在弹回时实例化一个新的视图控制器。 【参考方案1】:
    @IBAction func button_Back(sender: AnyObject)
    
     self.navigationController?.popViewControllerAnimated(true)
    

【讨论】:

谢谢,但我正在为多个视图控制器执行此操作。使用 popToViewController 给了我一个新实例。 使用 popViewController 本身并不会给你一个新的实例。您的控制器的视图可能已卸载,但您没有新实例,除非您的代码写错了。

以上是关于在不实例化新控制器的情况下弹出查看控制器的主要内容,如果未能解决你的问题,请参考以下文章

实例化新 VC 后销毁当前 tabbarVC

如何在不改变其内容位置的情况下弹出整个 Div

在 ASP.NET Web API 控制器的 nunit 测试中实例化新的 System.Web.Http.OData.Query.ODataQueryOptions

没有动画的Apple Watch推送控制器这可能吗?

如何在不使用导航控制器的情况下推送 UIViewController?

eject命令