是否可以使用从单个模式视图控制器退回到同一个源视图控制器的多个实例中的一个实例?
问题描述:
我的故事板布局是这样的,我有MainVC
连接到ModalVC
通过一个segue,它呈现模态。是否可以使用从单个模式视图控制器退回到同一个源视图控制器的多个实例中的一个实例?
但是,在编程上,我在运行时总共实例化了5个MainVC
实例。
因此,具有相同标识符的MainVC
的所有五个实例都连接到ModalVC
。
我需要在ModalVC
中执行一些操作并解除它之后更改MainVC
中的属性,并且似乎有多种方法可以通过segse进行此操作。
这里的顶部答案很详细,说明只有在那里是一个源视图控制器的情况下使用开卷SEGUE但执行: Passing data with unwind segue
我的问题是:将使用SEGUE,就像在那个答案中,或者其他任何方式一样,在我的情况下工作,将多个相同的MainVC
(相同的标识符)附加到单个实例ModalVC
?
unwind segue将仅在传输数据或在启动它的单个MainVC
实例中执行操作吗?或者它会最终影响所有五个MainVC
实例,因为MainVC
实例具有相同的标识符?如果是后者,有没有办法解决这个问题?
答
Apple有一个全面的technical note关于如何展开工作以及如何确定目标视图控制器,但总而言之,该过程检查视图控制器导航层次结构以找到可处理展开的第一个视图控制器,并且愿意这样做。
在你的情况下,这将是MainVC
实例展示了正在展开的ModalVC
。 unwind segue不能由不在导航层次结构中的视图控制器实例处理(例如,MainVC
的实例不包含ModalVC
)