是否可以使用从单个模态视图控制器返回到同一源视图控制器的多个实例之一的展开转场?

Is it possible to use an unwind segue from a single modal view controller back to one of multiple instances of the same source view controller?

我的 Storyboard 布局是这样的,我 MainVC 通过模态呈现的 segue 连接到 ModalVC

但是,在运行时以编程方式,我总共实例化了 MainVC 的五个实例。

因此,具有相同标识符的 MainVC 的所有五个实例都连接到 ModalVC

我需要在 ModalVC 中执行一些操作并关闭它后更改 MainVC 中的属性,似乎有多种方法可以通过 segues 来完成此操作。

这里的最佳答案非常详细,并解释了使用 unwind segue 的实现,但仅在有一个源视图控制器的情况下:

我的问题是: 将使用 segue,就像在那个答案中一样,或者任何其他方式,在我的情况下工作,具有相同的多个实例 MainVC (相同的标识符)附加到 ModalVC?

的单个实例

unwind segue 是否仅在启动它的单个 MainVC 实例中传输数据或执行操作?或者它最终会影响所有五个 MainVC 个实例,因为 MainVC 个实例具有相同的标识符?如果是后者,有什么办法解决这个问题吗?

Apple 对 unwind segues 如何工作以及如何确定目标视图控制器有全面的 technical note,但总而言之,该过程检查视图控制器导航层次结构以找到可以处理的第一个视图控制器放松 segue 并愿意这样做。

在您的例子中,这将是呈现 ModalVCMainVC 实例正在展开。 unwind segue 不能由不在导航层次结构中的视图控制器实例处理(例如 MainVC 的实例没有显示 ModalVC