【问题标题】:Poping a base view . Will it pop all its child view?弹出一个基本视图。它会弹出所有子视图吗?
【发布时间】:2012-11-18 15:11:05
【问题描述】:

我使用导航控制器推送了一个视图(例如:first_view),从该视图中我推送了一些其他视图, 在一种情况下,事件将通知第一个视图弹出,在这种情况下,如果我直接弹出视图,它会通过释放其记忆来正确弹出所有子视图吗?或者是否需要通知所有子视图相应弹出。

希望我的问题可以理解 :)

【问题讨论】:

  • 您到底想要什么?你想去第一个 parentview 控制器吗??
  • 通知将直接到达父视图,如何弹出其所有子视图?

标签: iphone ios cocoa-touch uiview uinavigationcontroller


【解决方案1】:

您可以通过两种方式返回 ParentView,例如。

[self.navigationController popToRootViewControllerAnimated:YES];

如果你在推入view2 之后有view1,然后是view3,那么如果你想弹出到view2,那么你可以设置索引为1,view1 索引为0

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];// set index of viewControler which you want to display

【讨论】:

  • 是的,我可以像这样弹出父视图,那子视图(从父视图推送的视图)我需要先弹出所有内容,然后再弹出父视图吗?
  • 你想用动画自动从孩子弹出到父母吗??
  • 嘿你也可以用索引来定义这样的.. [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];// 设置你想要的 viewControler 的索引显示
  • 不需要。仅弹出带有动画的父级就可以了。
  • popToViewController:我必须在子视图中执行此操作才能转到父视图,对吗?但是我有父实例,我可以直接弹出它,我想要的是它的所有子被推送,尽管父将被释放?
【解决方案2】:

如果您已将viewController1, viewController2, viewController3viewController4 推入UINavigationController 并调用[self.navigationController popToViewController:viewController1];[self.navigationController popToRootViewController];,这将自动从导航堆栈中弹出viewController2viewController3。你不需要显式地弹出它们。

【讨论】:

  • 哦..只有我想听的,谢谢。过一段时间我会接受你的回答,以便我们有不同的意见,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多