“pushViewController”为自己的类,后跟“performSegueWithIdentifier”,导致“Receiver没有带标识符的segue”

时间:2012-09-10 14:15:24

标签: ios view controller push segue

我有这个主菜单视图controller -thing,而不是在我的故事板中定义两次,中间有segue,在它自己的类的新实例上调用pushViewController。所以它是:

menu_a --> menu_a --> option_x

而不是

menu_a --> menu_b --> option_x

在推动视图控制器一次之后,navigationController丢失了相关segue的跟踪,并且我得到“Receiver has segue with identifier”消息。也就是说,

menu_a --> option_y

永远不会产生这种错误。

我用Google搜索并搜索Stack Overflow过去三个小时没有运气。 我希望那里的人尝试过同样的事情,并希望详细说明一种解决方法。

1 个答案:

答案 0 :(得分:0)

我不能保证这会起作用,但这里有:

大概是因为segues是一个Storyboard功能,调用performSegue会引用由storyboard实例化的ViewController。如this question中所述,可以请求您的故事板从其自身实例化一个新的ViewController,而不是手动创建它(这是我认为你正在做的)。

UIStoryboard* storyboard = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UIViewController* dest = [storyboard instantiateViewControllerWithIdentifier:@"CustomController"];

尝试以这种方式创建的ViewController中的segue可能会有更多的运气,因为它应该具有相关的相同segue信息,而手动创建的segue信息则不会。这只是一个理论 - 让我知道它是否有效:)