我有4种不同的观点(a,b,c,d)。用户可以从:
a->b,
b->c ,b->d
c->b ,b->d
d-> c, d->b
要加载新视图,我使用导航控制器推送视图。 我的问题是什么是处理后退按钮的最佳解决方案,以使它始终像这样工作:
d->c
c->b
b->a
无论所有先前的视图控制器推送。
换句话说,用户进行以下转换序列: (即-a> b-> c-> b-> c-> d-> c)但是当他按下后退按钮时我希望他看到屏幕B,而不是先前按下D。
我知道如何以丑陋的方式解决它,但我希望更优雅。
答案 0 :(得分:1)
UINavigationController支持通过popToViewController弹出一个特定的视图控制器:动画方法......
弹出视图控制器,直到指定的视图控制器位于导航堆栈的顶部。
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
但我建议您重新考虑导航层次结构。 Apple Human Interface指南建议遵循结构化和一致的导航方案。控制器之间的跳转可能会让用户感到困惑。