Iphone 导航控制器弹出视图中的特定流

Iphone 导航控制器弹出视图中的特定流,iphone,xcode,ios4,uiviewcontroller,uinavigationcontroller,Iphone,Xcode,Ios4,Uiviewcontroller,Uinavigationcontroller,我有4种不同的观点(a、b、c、d)。用户可以从以下位置访问: a->b, b->c ,b->d c->b ,b->d d-> c, d->b 要加载新视图,我使用navitaion控制器推送视图。 我的问题是,为了使后退按钮始终像这样工作,处理后退按钮的最佳解决方案是什么: d->c c->b b->a 不管之前的所有视图控制器推送 换句话说,用户进行以下顺序的转换: (即a->b->c->b->c->d->c)但当他按下后退

我有4种不同的观点(a、b、c、d)。用户可以从以下位置访问:

a->b,
b->c ,b->d 
c->b ,b->d 
d-> c, d->b
要加载新视图,我使用navitaion控制器推送视图。 我的问题是,为了使后退按钮始终像这样工作,处理后退按钮的最佳解决方案是什么:

d->c
c->b
b->a
不管之前的所有视图控制器推送

换句话说,用户进行以下顺序的转换: (即a->b->c->b->c->d->c)但当他按下后退按钮时,我希望他看到屏幕b,而不是之前按下的d


我知道如何用丑陋的方式解决这个问题,但我希望有更优雅的方式。

UINavigationController支持通过popToViewController:animated方法弹出到特定的视图控制器

弹出视图控制器,直到指定的视图控制器位于导航堆栈的顶部

  • (NSArray*)popToViewController:(UIViewController*)viewController动画:(BOOL)动画


不过,我建议您重新考虑导航层次结构。苹果人机界面指南建议遵循结构化和一致的导航方案。在控制器之间跳转可能会让用户感到困惑。

UINavigationController支持通过popToViewController:animated方法跳回特定的视图控制器

弹出视图控制器,直到指定的视图控制器位于导航堆栈的顶部

  • (NSArray*)popToViewController:(UIViewController*)viewController动画:(BOOL)动画

不过,我建议您重新考虑导航层次结构。苹果人机界面指南建议遵循结构化和一致的导航方案。在控制器之间跳跃可能会让用户感到困惑