使用 poptoviewcontroller 弹出不同的视图控制器
Posted
技术标签:
【中文标题】使用 poptoviewcontroller 弹出不同的视图控制器【英文标题】:Poping different viewcontroller using poptoviewcontroller 【发布时间】:2011-09-21 05:33:11 【问题描述】:我有一个包含三个viewcontrollers
的应用程序
Mapview
是rootviewcontroller
mapview -pushviewcontroller - listview,
listview - pushviewcontroller - mapview,
第一个条件
mapview -pushviewcontroller - 城市景观和 cityview - pushviewcontroller - mapview
第二个条件
listview -pushviewcontroller - 城市景观和 cityview - pushviewcontroller - listview
这样的视图控制器顺序
mapview-listview, mapview-cityview, 列表视图-城市视图
问题是我正在使用[self.navigationController popToRootViewControllerAnimated:YES];
但它仅适用于第一个条件而不适用于第二个条件
当我在第二种情况下使用它时,它会再次显示地图视图
即。列表视图成功推送到城市视图,我想弹回列表视图,但它再次回到地图视图而不是列表视图
即使我也试试这个
[self popToViewControllerAtIndex:1 animated:YES];
但它又显示了同样的问题。
我已经尝试了几乎所有在论坛中找到的东西。
提前致谢!
【问题讨论】:
【参考方案1】:要修改(弹出视图)导航堆栈,您可以使用以下方法:
用指定的项目替换当前由导航控制器管理的视图控制器。
- (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
【讨论】:
以上是关于使用 poptoviewcontroller 弹出不同的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
调用popToViewController后如何清除视图中的文本框