接收方没有标识符和#34; ***"

时间:2015-07-06 09:12:24

标签: ios objective-c storyboard segue uistoryboardsegue

我第一次遇到这个问题。我在堆栈溢出时检查了类似的问题,但没有一个解决方案可以解决我的问题所以我有这个帖子。

到目前为止,我有两个视图controllers(让我们说A和B),我试图将它们与一个名为" toB"的segue连接起来。当我运行该程序时,Xcode告诉我Receiver(B) has no segue with identifier "toB"

我非常确定identifier和代码中storyboard的拼写完全相同。并且segue的行已连接A view controllerB view controller

但两个视图storyboard的{​​{1}} ID不同。这是问题??

希望有人可以帮助我。提前谢谢!

感谢@Amit Shelgaonkar的提示!就我而言,将controllers移至performSegueWithIdentifier仍然无法正常工作,但将其移至viewDidAppear可以解决问题!

我仍然不知道为什么它在我的情况下不起作用,因为当我尝试开发测试应用并将applicationWillEnterForeground放入performSegueWithIdentifier时,它完美地运作

3 个答案:

答案 0 :(得分:1)

检查内容:
1. A和B之间的争论,segue的名字 2.代码应如下所示:[self performSegueWithIdentifier:@"toB" sender:self];
3.检查您的B视图是否具有自定义类 的 4。尝试清理项目并再次运行。

答案 1 :(得分:1)

您在performSegueWithIdentifier:sender:中致电viewDidLoad。您无法解除尚未提交的UIViewControllerviewDidLoad具有纯粹的内存管理功能,您可以将其用作(部分)构造函数。可行的方法是在segue中开始viewDidAppear,但我建议您在第一时间开始使用您想要的视图。

答案 2 :(得分:0)

有点老但希望这有助于我遇到同样的问题。完成了这里的所有建议后,问题变成了我的接收视图,在该视图的类声明中,我将其设置为ViewController而不是UIViewController。

e.g。我最初有这个并且错了

class viewB: ViewController{

这是对的

class viewB: UIViewController{