在查看了很多相关问题并尝试了所有事情之后,我发布了自己的问题,试图得到满意的答复。
我的应用程序从基础ViewController开始,然后使用故事板中创建的按钮的模态segue转换到GameScene ViewController,然后呈现游戏场景。当游戏结束时,我以编程方式创建按钮以从GameScene导航回基本ViewController。按下此按钮时,以下代码将尝试转回基本ViewController:
UIViewController *vc = self.view.window.rootViewController;
[vc performSegueWithIdentifier:@"BackToStartScreenSegue" sender:nil];
它正在调用的segue是通过控制 - 从GameSceneViewController拖动到基本ViewController并选择模态作为segue类型来创建的。这会创建一个奇怪的8字形图案,其中每个视图控件都有一个指向另一个的模态segue。我怀疑这不是最佳的。
我觉得我应该使用unwind segue,但我不确定。我试图在GameSceneViewController故事板上添加一个按钮,然后在游戏结束后启用它,但我无法控制是否通过我的场景启用它,但我可能没有做到这一点。
确切的错误消息如下: * 由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' Receiver()没有带标识符的segue&# 39; BackToStartScreenSegue''
我还检查并仔细检查了我在segue标识符上的拼写是否正确,以及从模拟器和测试设备中删除了应用程序,以及使用它再次清理和构建。
答案 0 :(得分:1)
由于它是模态segue,你试图使用
[self dismissViewControllerAnimated:YES completion:nil];