我有这个主菜单视图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过去三个小时没有运气。 我希望那里的人尝试过同样的事情,并希望详细说明一种解决方法。
答案 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信息则不会。这只是一个理论 - 让我知道它是否有效:)