Objective-C。为什么 Segue 推出新的 viewController?

Objective-C. Why Segue push a new viewController?

我有 2 个观点:

  1. ViewController
  2. 表格ViewController

当我在表中时ViewController 我需要 Segue 将我带回之前的视图,但它一直在创建 ViewController.

的新副本

我需要 Segue return 我到没有克隆的最后一个视图。

TableViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSString *identifire = [sender text];
    ViewController* vc = (ViewController*)segue.destinationViewController;
    [vc view];
    [vc hideElements:identifire];
}

如果是常规转场,则会创建 viewcontroller 的新实例。将目标 viewcontroller 放在 Storyboard 中的 tableviewcontroller 之前并不重要。

您应该改用展开转场。或者直接跳回之前的 viewcontroller.

你只需要

[self.navigationController popViewControllerAnimated:true];

在您的 TableViewController 中,您需要弹出回到上一个视图控制器。

[self.navigationController popViewControllerAnimated:true];

segue 将始终创建一个新的视图控制器并将其推送到您的案例中的顶部 os 导航堆栈。您可以改用 unwind segue