我有一个应用程序是从Xcode 4.5的样板主 - 细节应用程序创建的,其中CoreData,StoryBoards和ARC已启用,而不是调用prepareForSegue。目前没有使用CoreData,但它将缓存XML响应。 performSegueWithIdentifier可以正常工作,但是prepareForSegue没有,我遇到麻烦从MasterViewController传递/访问数据到performSegueWithIdentifier创建的detailViewController中。
我的基本设置类似于主题中讨论的内容:Storyboards and UISplitViewControllers。第三页上有一个故事板的图像,与我的设置非常相似(我没有足够的代表来发布图像)。
简而言之:
我遇到的问题是没有调用prepareForSegue,所以我无法将获取的XML传递给detailViewController。
我需要的是以下之一:
我尝试了什么:
我的问题可能是问题:
[self.navigationController performSegueWithIdentifier:@"theDesiredSegue" sender:self];
来自handleLoadedResponse:notif回调,应用程序试图在我的解析对象中调用prepareForSegue?
TIA
雷
答案 0 :(得分:2)
好吧,白痴盯着代码太长时间和/或新手。
在对我所知的一切进行三重检查后,我认为唯一剩下的就是segue代码在NSXMLParser回调中行为不正确,所以我切换了handleLoadedResponse:notif例程来存储解析后的数据和发送通知。
在调试这些更改时,我意识到我的segues附加到错误的对象上。它们实际上是附加到navigationController而不是我的viewController。在视觉上,事情看起来像RWForums: Storyboards and UISplitViewControllers第3页上的故事板,但事实并非如此。最终的结果是,即使看起来我的代码调用了performSegueWithIdentifier并且它应该调用了prepareForSegue方法,它实际上调用了navigationController的segue,因此正在调用navigationController的继承的prepareForSegue。
建议:确保在文档大纲打开的情况下重新重新检查StoryBoard编辑器中的所有连接。
雷