0

我有这个主菜单视图控制器——它不是在我的故事板中定义两次,中间有segues,而是调用pushViewController它自己类的一个新实例。就这样:

menu_a --> menu_a --> option_x

而不是

menu_a --> menu_b --> option_x

推送一次视图控制器后,navigationController关联的 segue 会丢失,我收到“Receiver has no segue with identifier”消息。那是,

menu_a --> option_y

永远不会产生这种错误。

在过去的三个小时里,我在 Google 上搜索并搜索了 Stack Overflow,但没有成功。我希望有人尝试过同样的事情,并希望详细说明一种解决方法。

4

1 回答 1

0

我不能保证这会奏效,但这里有:

大概是因为 segues 是 Storyboard 的一个特性,调用 performSegue 是指回你的由 Storyboard 实例化的 ViewController。如本问题中所述,可以请求您的故事板从其自身实例化一个新的 ViewController,而不是手动创建它(我认为您正在这样做)。

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

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

于 2012-09-11T11:55:01.967 回答