'Receiver has no segue with identifier' when identifier exists

做~自己de王妃 提交于 2019-12-18 17:29:44

问题


For an iOS app, I have a story board and multiple controllers, and a segue going from controller GameClass to controller SettingsClass. The segue, in view Controller GameClass has an identifier called GameToSettings:

However, when I want to call the segue from my GameClass:

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

I get the error message

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

I tried many tips I found in other articles (like renaming the storyboard, cleaning the project, changing simulator format, giving another name to the segue, ), but the issue keeps coming.

I've uploaded a version of my code here: http://www.petits-suisses.ch/Issue.zip. Any suggestion of what I could continue trying ?
Thanks.


回答1:


You should not instantiate your view controller this way:

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

Instead, use

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

Edit: Take a look at https://github.com/mac-cain13/R.swift

It will allow you to instantiate it easily with autocompletion, type safe method: R.storyboard.main.myViewController



来源:https://stackoverflow.com/questions/25020866/receiver-has-no-segue-with-identifier-when-identifier-exists

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!