After looking around at a lot of related questions and trying just about everything, I am posting my own in an attempt to get a satisfactory response.
I my app start out at the base ViewController, which then uses a modal segue from a button created in storyboard to transition to the GameScene ViewController, which then presents the game scene. When the game is over, I programatically create the button to navigate back to the base ViewController from the GameScene. When this button is pressed, the following code attempts to segue back to the base ViewController:
UIViewController *vc = self.view.window.rootViewController;
[vc performSegueWithIdentifier:@"BackToStartScreenSegue" sender:nil];
The segue it is calling has been created by control-dragging from the GameSceneViewController to the base ViewController and selecting modal as the segue type. This creates an odd figure-8 pattern where each viewcontroller has a modal segue pointing to the other. I suspect this is not optimal.
I have a feeling that I should be using an unwind segue, but I am not sure. I attempted to add a button to the GameSceneViewController storyboard, and then enable it once the game is over, but I was not able to control whether or not it was enabled through my Scene, but I may not have done it right.
The exact error message is as follows: * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver () has no segue with identifier 'BackToStartScreenSegue''
I have also checked and double checked that I've gotten the spelling right on the segue identifier, as well as deleted the app from the simulator and testing device, as well as cleaned and built again with this.