如何解决替代创建模式UIViewControllers堆栈?
| 我遇到的情况是,用户会经历一系列“级别”。每个级别都有其自己的UIViewController。现在,我只是简单地介绍下一个级别:// in level 1 view controller,for example,here\'s how we go to level 2
[self presentModalViewController:level2VC animated:YES];
这很容易,但是很显然会导致大量的UIViewControllers堆栈。理想情况下,我想对下一级的UIViewController做一个很好的可视化过渡(例如交叉溶解),然后释放最后一个以节省内存,但是我认为这会导致不稳定。 d以这种方式释放父视图控制器。
那么最好的方法是什么?
谢谢!
解决方法
这就是构建UINavigationController的目的!类参考
,
UINavigationController
是您所描述的UI的常见用法。
您可以通过执行以下命令来推送新的视图控制器:pushViewController:animated:
,它也提供了所需的过渡效果。
无论如何,请记住,这完全是为了“导航”:也就是说,来回移动。因此,这不仅仅是前进,除非您通过隐藏“后退”按钮[self.navigationItem setHidesBackButton:YES animated:YES]
自定义导航栏。
此外,所有的“ 4” a(始终)都保存在内存中,只有在内存不足的情况下(“ 5”),“受控”视图才会自动释放,从而恢复内存。如果发生这种情况,您将需要确保能够再次加载视图,以防用户向后导航。
如果您真的很在意内存(尽管我认为这应该不是问题),您甚至可以在推动下一个控制器之前想到“弹出”(即,删除)当前控制器。这将承受非常“平坦”的控制器层次结构。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。