我应该如何弹出特定的视图控制器?

时间:2012-07-25 17:43:40

标签: objective-c ios cocoa

我正在创建一个通用的iOS应用程序,它本质上是一个长订单页面。用户在购物车屏幕上启动,然后通过一系列4个不同的屏幕(不同的VC)线性地(使用UINavigationController)进行。一旦他们到达最后一个屏幕,按下提交,我希望应用程序然后将用户带回购物车屏幕。但是,购物车屏幕不是根视图控制器,因此我无法使用[self.navigationController popToRootViewControllerAnimated:YES];。我该怎么做到这一点?人们通常如何做到这一点?

我想到的一些想法是:

1)维护一个我想要弹出的VC的全局变量?例如,每当用户进入购物车页面时,我都会将购物车VC设置为此全局变量的值。

2)一旦我在最后一页上,循环浏览导航控制器堆栈上的VC堆栈,然后当我找到一个我想要的类型(同一个类)时,我会弹出它。

有更好的方法吗?是否有一些我缺少的神奇API?人们在这样的情况下做了什么?

1 个答案:

答案 0 :(得分:2)

使用:

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated

即找到您的购物车对象并将其用作viewController参数。