使用经过验证的 segue 标识符字符串调用 performSegueWithIdentifier 时崩溃

Posted

技术标签:

【中文标题】使用经过验证的 segue 标识符字符串调用 performSegueWithIdentifier 时崩溃【英文标题】:Crash when calling performSegueWithIdentifier with verified segue identifier string 【发布时间】:2014-07-21 23:41:30 【问题描述】:

我以编程方式向导航栏添加了一个“完成”按钮,因为我无法在情节提要上执行此操作。

接下来,我想从这个“完成”按钮链接到 UICollectionViewController 的另一个子类(目标和源视图控制器都是 UICollectionViewController 的子类)。

由于我的“完成”按钮无法显示在情节提要上(因为以编程方式添加),我在情节提要上创建了一个新的“完成”按钮,只是为了能够在两者之间生成一个转场标识符视图控制器。我将字符串“donePressed”分配给 segue 标识符,如您在此处看到的:https://www.dropbox.com/s/8sd936ml1iably3/donePressed_segue_identifier.png

当我运行构建时,它会成功,但是当我点击导航栏中的“完成”按钮时,我收到以下错误消息:https://www.dropbox.com/s/r5fdg9xs886hxod/Error_Message_performSegueWithIdentifier.png

本质上,它告诉我我的源视图控制器与“donePressed”标识符没有任何关联。

这对我来说很奇怪,因为我故意创建了 segue,当我仔细检查调用“performSegueWithIdentifier”方法的代码时,看起来我输入了正确的“donePressed”NSString。

看这里这行代码:

-(void)donePressed 
    //segue to other VC
    [self performSegueWithIdentifier:@"donePressed" sender:self.doneButton];


我做错了什么?

非常感谢任何帮助。

谢谢!

【问题讨论】:

THFriendsViewControleller 是否有segue 名称donePressed?错误信息表示没有donePressed的segue。 【参考方案1】:

您创建的 segue 看起来像是从“完成”按钮到下一个 ViewController,而不是从 self(主视图控制器)到下一个视图控制器。如果您已链接“完成”按钮以在情节提要中执行全部转场,则无需编写任何程序代码来执行转场。

【讨论】:

以上是关于使用经过验证的 segue 标识符字符串调用 performSegueWithIdentifier 时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

使用 ViewDidAppear 中的标识符执行 Segue 不起作用

如何将 segue 标识符添加到以编程方式进行的模态转换?

VC 之间的 Swift Segue 没有任何联系

Unwind Segue - 将出口拖到哪里?

xcode中奇怪的segue动画

无法以编程方式执行 segue