0

我有一个故事板,它有一个显示其他模式视图控制器的起始视图控制器。

假设视图控制器 A 是起始视图控制器,视图控制器 B 是模态呈现的视图控制器。

如何从 ViewController A(不仅仅是 ViewController B 上的按钮)触发从 B 回到 A 的展开转场?

该按钮用于执行 unwind segue ,但是当我尝试使用以编程方式执行它时

[self performSegueWithIdentifier:@"ReturnToStart" sender:self]

发生错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<StartViewController: 0x1ed4b9b0>) has no segue with identifier 'ReturnToStart''

我不明白的是,当我按下模态视图控制器上的按钮时,展开转场工作正常,但是当我尝试从另一个 ViewController 触发它时找不到转场(故事板中的标识符是正确的)。

有什么方法可以从我的startingViewController 访问所有的segues,还是我的结构从根本上是错误的?

4

1 回答 1

2

segue “属于” source View Controller,所以这就是您收到该错误消息的原因。Segue 旨在从源视图控制器中调用。

如果你想从 A 中移除 viewControllerB,不要使用 segue,只需使用:

dismissViewControllerAnimated:completion:
于 2013-05-06T19:45:30.330 回答