【问题标题】:UINavigationController, force stackUINavigationController,强制堆栈
【发布时间】:2015-10-13 03:02:23
【问题描述】:

关于UINavigationController的问题

假设我有 5 个 UiViewController,每个都推送下一个。

vc1 --> vc2 --> vc3 --> vc4 --> vc5
vc1

如果我想在 vc1 上添加一个 UIButton 推送到 vc4,但我也希望 vc4 在 popViewController 上转到 vc3

vc1 --> --> vc4
vc1

最好的使用方法是:?

[self.navigationController setViewControllers:newViewControllers animated:NO];

【问题讨论】:

  • 是的,使用setViewControllers:animated:

标签: ios uinavigationcontroller


【解决方案1】:

如果你使用

[self.navigationController setViewControllers:newViewControllers animated:NO];

没有动画

所以,在 vc1 中试试这个

[self.navigationController pushViewController:vc2 animated: NO]; 
[self.navigationController pushViewController:vc3 animated: NO];
[self.navigationController pushViewController:vc4 animated: YES];

【讨论】:

  • 不是和[self.navigationController setViewControllers:@[self,[vc2 new],[vc3 new],[vc4 new]] animated:YES];一样吗,因为你的建议我得到了同样的结果
  • 你在动画中看到v2和v3了吗?
  • 这就是重点。使用:[self.navigationController pushViewController:vc2 animated: NO]; [self.navigationController pushViewController:vc3 动画:否]; [self.navigationController pushViewController:vc4 动画:是]; = 我可以看到 v2 和 v3。 (不走运,因为看起来很简单!)我会测试 setViewControllers 看看。
  • [self.navigationController setViewControllers:newViewControllers animated:NO];工作正常。但是有没有办法强制在 vc3 上调用 viewdidload ?
  • vc3.view = 强制 viewDidLoad :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
相关资源
最近更新 更多