对于iOS应用程序,我有一个故事板和多个控制器,以及从控制器 GameClass 到控制器 SettingsClass 的segue。在控制器 GameClass 中的segue有一个名为 GameToSettings 的标识符:
但是,当我想从 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。
对我可以继续尝试的任何建议?
谢谢。
答案 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