当标识符存在时,“Receiver没有带标识符的segue”

时间:2014-07-29 16:55:47

标签: ios uiviewcontroller storyboard interface-builder uistoryboardsegue

对于iOS应用程序,我有一个故事板和多个控制器,以及从控制器 GameClass 到控制器 SettingsClass 的segue。在控制器 GameClass 中的segue有一个名为 GameToSettings 的标识符:

enter image description here

但是,当我想从 GameClass 调用segue时:

[self performSegueWithIdentifier: @"GameToSettings" sender: self];

我收到错误消息

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<GameClass: 0xcf0c550>) has no segue with identifier 'GameToSettings''

我尝试了很多其他文章中提到的技巧(比如重命名故事板,清理项目,更改模拟器格式,给segue另一个名字),但问题仍然存在。

我已在此处上传了我的代码版本:http://www.petits-suisses.ch/Issue.zip。 对我可以继续尝试的任何建议?
谢谢。

1 个答案:

答案 0 :(得分:8)

您不应该以这种方式实例化视图控制器:

GameClass *myNewVC = [[GameClass alloc] init];

相反,请使用

 [[UIStoryboard storyboardWithName:@"storyboard name" bundle:nil] instantiateViewControllerWithIdentifier:@"vc identifier">]

编辑: 看看https://github.com/mac-cain13/R.swift

它允许您使用自动完成轻松实例化,类型安全的方法:R.storyboard.main.myViewController