我正在创建一组类似于向导的屏幕,我想知道如何使视图解除其自身及其父视图并立即显示“DoneScreen”而不必担心资源泄漏。我的观点如下:
Base -> Level1 -> DoneScreen
-> Level2 -> DoneScreen
Level1控制器是使用view.xib创建的导航控制器,并以
显示[self presentModalViewController ...]
由基本控制器。 Level1控制器还负责创建“DoneScreen”,可以根据特定标准显示“DoneScreen”而不是Level2 Screen。
当用户点击屏幕上的按钮时,Level1控制器实例化Level2控制器并通过
显示它。[self.navigationController pushViewController ..]
和Level2控制器的视图有一个“下一步”按钮。
当使用点击Level2屏幕中的'Next'按钮时,我需要关闭当前Level2的视图以及Level1的视图并显示'DoneScreen',它将被创建并传递给Level2控制器来自Level1。 (部分是为了减少代码重复,部分是为了在控制器之间分离责任)在Level2控制器中,如果我先显示'DoneScreen'并用
解雇自己[self.navigationController popViewControllerAnimated:YES];
然后Level1控制器的模态视图仍然存在于'Base'之上但在Done屏幕下。除了Base之外清除所有这些视图然后显示'DoneScreen'的好方法是什么?
有关如何以简单而优雅的方式完成此任务的任何好建议吗?
答案 0 :(得分:0)
谷歌搜索“iphone向导教程”只产生了one good result。现在看来,制作一个包含所有向导屏幕小部件的长视图可能是个更好的主意。
答案 1 :(得分:0)
您可以考虑在堆栈中抓取您想要的视图,然后创建一个新数组,然后使用导航控制器“viewControllers”属性将它们全部交换出来。
答案 2 :(得分:0)
唉,我的知识深度(或缺乏)导致我使用路径上的所有内容进入单个屏幕,根据状态使用多个视图。不理想,有点麻烦,但它的工作原理。谢谢大家的帮助。