使用poptoviewcontroller弹出不同的viewcontroller

时间:2011-09-21 05:33:11

标签: objective-c uinavigationcontroller pushviewcontroller poptoviewcontroller

我有一个包含三个viewcontrollers

的应用程序

Mapviewrootviewcontroller

mapview -pushviewcontroller - listview,

listview - pushviewcontroller - mapview,

第一条条件

mapview -pushviewcontroller - cityview和 cityview - pushviewcontroller - mapview

第二条条件

listview -pushviewcontroller - cityview和 cityview - pushviewcontroller - listview

像这样的viewcontroller的顺序

的MapView-列表视图, MapView类,市景, 列表视图-市景

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

即。 listview成功推送到cityview,我想回到列表视图,但它又回到mapview而不是listview

甚至我也试试这个 [self popToViewControllerAtIndex:1 animated:YES];

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

我在论坛上已经尝试了很多东西。

提前致谢!

1 个答案:

答案 0 :(得分: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

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