0

我有一个包含三个的应用程序viewcontrollers

Mapviewrootviewcontroller

mapview -pushviewcontroller - listview,

listview - pushviewcontroller - mapview,

第一个条件

mapview -pushviewcontroller - cityview 和 cityview - pushviewcontroller - mapview

第二条件

listview -pushviewcontroller - cityview 和 cityview - pushviewcontroller - listview

像这样的视图控制器的顺序

mapview-listview、mapview-cityview、listview-cityview

问题是我正在使用[self.navigationController popToRootViewControllerAnimated:YES]; ,但它只适用于第一个条件而不适用于第二个条件,当我在第二个条件下使用它时,它再次显示 mapview

IE。列表视图成功推送到城市视图,我想弹回列表视图,但它再次回到地图视图而不是列表视图

即使我也试试这个 [self popToViewControllerAtIndex:1 animated:YES];

但它再次显示了同样的问题。

我已经尝试了几乎所有在论坛中找到的东西。

提前致谢!

4

1 回答 1

0

要修改(弹出视图)导航堆栈,您可以使用以下方法:

  1. 用指定的项目替换当前由导航控制器管理的视图控制器。

    - (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated

  2. 从导航堆栈中弹出顶视图控制器并更新显示。

    - (UIViewController *)popViewControllerAnimated:(BOOL)animated

  3. 弹出堆栈上除根视图控制器之外的所有视图控制器并更新显示。

    - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated

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

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

要访问堆栈上的当前视图控制器,您可以使用@property(nonatomic, copy) NSArray *viewControllers

于 2011-09-21T05:50:49.760 回答