我正在尝试切换视图的能力。屏幕是即时生成的,可能会有30-100个屏幕顺序显示。一个NavigationController可能会工作,但我可能会创建一百个左右的屏幕,所以我担心如果我推动那么多视图会耗尽内存。如果我一次只向NavigationController添加一个屏幕,并且添加新屏幕时删除所有屏幕然后添加新屏幕,这可能会有效。但这可能会导致奇怪的动画。
我尝试创建一个自定义View Switcher,它可以按照apress书中的第6章示例动态加载每个视图。问题是,在旋转时,事件不会使视图控制器进入当前可见的视图。所以它最终在屏幕旋转上做了奇怪的事情。
我想的另一种方法可能是使用标签栏控制器并使标签不可见。然后我可以使用选项卡1和2来保持当前视图,并使用最后一个视图和乒乓来回。然后内存不像使用NavigationController那么大。
有没有人有任何其他想法?我觉得应该有一种更简单的方法来做到这一点,我只是没有看到。
答案 0 :(得分:0)
如何创建单身" ScreenManager"在根视图控制器上加载,添加和删除视图?通过这种方式,您可以确保视图层次结构不会错综复杂且无法控制。它在设计方面也是一个好主意,在内存管理方面应该非常简单有效。