我有一个故事板,它有一个启动视图控制器,可以显示其他模态视图控制器。
假设视图控制器A是startingViewController,视图控制器B是模态呈现的视图控制器。
如何从ViewController A(不仅仅是ViewController B上的按钮)触发从B回退到A的展开segue?
该按钮用于执行展开segue,但是当我尝试使用
以编程方式执行它时[self performSegueWithIdentifier:@"ReturnToStart" sender:self]
发生错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<StartViewController: 0x1ed4b9b0>) has no segue with identifier 'ReturnToStart''
我不明白的是,当我按下模态视图控制器上的按钮时,展开segue工作正常,但是当我尝试从另一个ViewController触发它时,找不到segue(标识符是在故事板中纠正)。
有没有办法从我的startingViewController访问所有segue,或者我的结构从根本上是错误的?
答案 0 :(得分:2)
segue“属于”源View Controller
,这就是您收到该错误消息的原因。 Segues旨在从源视图控制器中调用。
如果你想从A中解除viewControllerB,不要使用segue,只需使用:
dismissViewControllerAnimated:completion: