【问题标题】:Unwind segue not being triggeredUnwind segue 没有被触发
【发布时间】:2013-04-30 15:11:27
【问题描述】:

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

假设视图控制器A是startingViewController,视图控制器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 或者我的结构根本上是错误的?

【问题讨论】:

    标签: ios ios6 modalviewcontroller uistoryboard uistoryboardsegue


    【解决方案1】:

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

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

    dismissViewControllerAnimated:completion:
    

    【讨论】:

    • 谢谢,我认为故事板中包含的所有视图控制器都可以通过某种方式访问​​所有 segue。
    • 谢谢。发现如果您在 Storyboard 上连接了视图控制器,则只能使用 performSegueWithIdentifier 方法。如果您以编程方式实例化视图,则需要使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多