返回正确的视图控制器

时间:2014-07-17 03:54:52

标签: ios objective-c uinavigationcontroller

我有三个视图控制器ABC

C是目标。

A开始,我有一个名为showCFromA的segue来查看控制器C

B开始,我有另一个名为showCFromB的segue来查看控制器C

现在,当显示C时(显示自B),我点按“返回”按钮,但在此阶段,它会显示A,而不是{{1正如我所料。

我该如何解决?

2 个答案:

答案 0 :(得分:1)

不要乱用Back - 这会让你的应用体验变得脱节。你最终会到达一个你不希望成为的地方,导航感觉不对。

如果堆叠中有B,则可以

popToViewController:animated:

返回要查看的特定视图控制器(B)。

如果你已经从A直接进入C而没有在B处干预,那么你就无法回到那里。相反,你应该推一个B。

如果你的B 应该在堆栈上 - 也就是说你从B到C - 那么如果你只是回去,那么B就是你最终应该去的地方。如果目前不是这种情况,您需要发布更多细节以帮助诊断问题。

现在令人困惑的是你在堆栈上实际拥有的东西。你提到在A和C,然后在B,然后到C,但你这样做的顺序(如果这是两个独立的情况)会影响结果。

答案 1 :(得分:0)

再次检查源后,我发现问题是没有正确处理导航vc堆栈。当从B推送新VC时,当调用viewWillDisapper(B)时,我添加了" popViewController"。因此,导航视图控制器阵列的计数为2(中间元素被删除)。这会产生奇怪的行为:从视图控制器C开始,我无法返回。