我正在尝试使用一系列UITableViewControllers在整个层级菜单中钻取并钻取drillup。 由于每个UITableViewController除了特定的数据源外完全相同,所以我只使用一个UITableViewController类。例如,级别1是姓氏数组,级别2是名字数组,级别3是生日数组。我没有3个UITableViewController(一个用于名字,一个用于名字,另一个用于生日),我只有一个UITableViewController,并且只分配/ init一个全新的UITableViewController,但是用数据源数组初始化它,每次连续向下钻取(即,didSelectRowAtIndexPath)。如果我需要深入到第四级,我可以切换阵列,我们都很好。它以这种方式更好地扩展。关闭UINavigationController的弹出视图显示不正确的UITableview数据
我可以“转发”并正确钻取。它完美无瑕。但是当我倒退时,即单击UINavigationController的“后退”按钮,我确实得到了“父母”的数据,或者看起来如此。但是当我真的点击一个单元格再次前进时,看起来我的数据源实际上并没有被转换出来。它似乎被正确缓存了,但是当我点击数据时,实际上2级的数据源实际上不再受2级数据的支持。它实际上得到了3级的数据,这是我刚从堆栈弹出的UITableViewController。
我是否需要重写UINavigationController的“后退按钮”,然后在弹出堆栈时更新我的数据源?我不知道我在这里失去了什么。我的UITableViewCode长度差不多有1000行,这是我所面临的一般问题。
Table1 Table2 Table3
smith --> Joe --> 1/1/1980
hit "back"
Table2
Joe is displayed (correct)
tap "Joe" again --> 6/23/1976 (indicating that this is someone else's birthdate, so the datasources have gotten mixed up.)
所以前进是正确的,但倒退似乎混淆了数据源。
您可以发布您正在使用的代码将新的表视图控制器推入堆栈吗? – Msencenb 2012-07-24 03:49:47