Ios 从导航控制器中删除未显示的视图

Ios 从导航控制器中删除未显示的视图,ios,swift,uinavigationcontroller,Ios,Swift,Uinavigationcontroller,我有一个导航控制器,可以控制一堆视图。该应用程序是一个字母卡应用程序,你可以滚动浏览,因此有很多页面。为了减少内存使用,我想从堆栈中删除未显示的视图。我要删除您从中推送的视图,以便下面的堆栈为空。我不能让它工作,所以需要一些帮助。我有下面的代码。这会减少内存吗 func showCViewController() { let view4 = self.storyboard?.instantiateViewControllerWithIdentifier("CView") as! CVie

我有一个导航控制器,可以控制一堆视图。该应用程序是一个字母卡应用程序,你可以滚动浏览,因此有很多页面。为了减少内存使用,我想从堆栈中删除未显示的视图。我要删除您从中推送的视图,以便下面的堆栈为空。我不能让它工作,所以需要一些帮助。我有下面的代码。这会减少内存吗

func showCViewController() {
    let view4 = self.storyboard?.instantiateViewControllerWithIdentifier("CView") as! CViewController
    self.navigationController?.pushViewController(view4, animated: true)

    //My code that doesn't work
    let view5 = self.storyboard?.insViewControllerWithIdentifier("BView")
    self.view5.removeFromSuperview!()       
}

导航控制器设计为堆栈。只能在堆栈顶部添加或删除视图控制器。无法从俯视图控制器下移除视图控制器

您需要使用不同样式的父视图控制器来执行所需操作。我建议查看UIPageViewController。它既可以进行iBooks风格的页面卷曲转换,也可以像iOS中的图片应用程序那样进行幻灯片横向转换


创建自己的具有自定义行为的父视图控制器也不难。iOS 6中添加了对该功能的支持,并从那时起进行了扩展。

Define“not work”。它编译吗?它会崩溃吗?它发射导弹吗?此外,您是否绝对确定内存实际上是一个问题,或者您是否过早地进行了优化?我已经用1-4个视图进行了测试,每个视图的内存膨胀了10mb。它没有崩溃。我用UIPageViewController做了一个,但它在启动时实例化了所有视图。我发现了一个可以清除未使用的视图的方法。我得做那件事。谢谢你的帮助。