Pergunta

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:

enter image description here

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.

Foi útil?

Solução

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top