我有一个控制一堆视图的导航控制器。该应用程序是一个您滚动的字母卡应用程序,因此有很多页面。为了减少内存使用量,我想从堆栈中删除未显示的视图。我想删除你推出的视图,因此下面的堆栈是空的。我不能让它工作所以需要一些帮助。我有下面的代码。这会减少记忆吗?
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!()
}
答案 0 :(得分:0)
导航控制器设计为堆栈。您只能在堆栈顶部添加或删除视图控制器。无法从顶视图控制器下删除视图控制器。
您需要使用不同风格的父视图控制器来执行您想要的操作。我建议看一下UIPageViewController。它可以执行iBooks样式的页面卷曲过渡,也可以像iOS中的图片应用程序那样进行滑动侧向过渡。
创建具有自定义行为的自己的父视图控制器也不难。在iOS 6中添加了对此的支持,并且从那时起已经扩展。