我有一个包含三个viewcontrollers
Mapview
是rootviewcontroller
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];
但它再次显示了同样的问题。
我在论坛上已经尝试了很多东西。
提前致谢!
答案 0 :(得分:0)
要修改(弹出视图)导航堆栈,您可以使用下一个方法:
使用指定的项目替换当前由导航控制器管理的视图控制器。
- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated
从导航堆栈弹出顶视图控制器并更新显示。
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
弹出除根视图控制器外的堆栈上的所有视图控制器并更新显示。
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
弹出视图控制器,直到指定的视图控制器位于导航堆栈的顶部。
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
要访问堆栈上的当前视图控制器,您可以使用@property(nonatomic, copy) NSArray *viewControllers