ios - 如何根据需要弹出到任何 View Controller ?

标签 ios viewcontroller

View Controller A B C D A->B->C->D popViewController 仅适用于 D 到 C 形式 popViewTopController仅从D到A; 如果我有 10 个 View Controller ,我可以通过任何方式弹出到任何 View 吗?

谢谢大家。 popViewController 会弹出到新的 View Controller 吗?

最佳答案

选项 1:按类别选择

要告诉navigationController弹出到特定的类,您可以执行以下操作:

NSArray *allViewControllers = [self.navigationController viewControllers];
for (UIViewController *aViewController in allViewControllers) 
{
  if ([aViewController isKindOfClass:[B class]]) 
  {
    [self.navigationController popToViewController:aViewController animated:YES];
  }
}

请考虑到,如果您不多次推送同一类的实例,则应该仅使用它。

选项 2:按级别选择

如果你想弹出到特定级别,你可以通过 self.navigationController.viewControllers 处的索引选择它,因为它与级别相对应。第一个推送的 UIViewController 将位于索引 0,第二个推送的 UIViewController 将位于索引 1,依此类推:

NSArray *allViewControllers = [self.navigationController viewControllers];
UIViewController *aViewController = [allViewControllers objectAtIndex:level];
[self.navigationController popToViewController:aViewController animated:YES];

关于ios - 如何根据需要弹出到任何 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30728077/

相关文章:

ios - 计算一半的百分比

ios - didEnterRegion 仅在设备唤醒时触发

iphone - TTThumbsviewcontroller 停止加载缩略图

ios - 使用 Swift 3 将数据从 Modal Viewcontroller 传递到 rootController(不要 Segue)

ios - 从另一个 viewController 访问文本字段文本

ios - 解析推送 REST API 错误 400 "Bad Request"

ios - 如何在iOS模拟器中测试强制触摸窥视和弹出?

ios - 从 appDelegate 呈现 ViewController

ios - 我无法将 TableViewCell 按钮连接到 TableViewController!如何将值从 TableViewCell 连接到 TableViewController?

ios - 从另一个 View Controller swift 3 解雇到家