我有一个从 Xcode 4.5 的样板 Master-Detail 应用程序创建的应用程序,它打开了 CoreData、StoryBoards 和 ARC,它没有调用 prepareForSegue。CoreData 目前没有被使用,但它将用于缓存 XML 响应。performSegueWithIdentifier 有效,但 prepareForSegue 无效,我在将数据从 MasterViewController 传递/访问到 performSegueWithIdentifier 创建的 detailViewController 时遇到了麻烦。
我的基本设置类似于线程中讨论的内容:Storyboards 和 UISplitViewControllers。第三页上有一个故事板的图像,与我的设置非常相似(我没有足够的代表来发布图像)。
简而言之:
- 我创建了一个标准的 splitView 排列
- MasterViewController 构建主表
- 每个单元格对应一个返回 XML 数据的 URL,该数据确定 detailView 中的内容
- 使用 NSXMLParser 操作/类解析获取的 XML
- 获取的 XML 确定需要哪个详细视图,并且 MasterViewController 调用适当的“替换”segue(通过 performSegueWithIdentifier)来启动相应的 detailViewController 以显示获取的 XML
我遇到的问题是没有调用 prepareForSegue,因此我无法将获取的 XML 传递给 detailViewController。
我需要的是以下之一:
- prepareForSegue 被执行
- 一种在 handleLoadedResponse:notif 中了解 segue.destinationViewController 的方法
- 一种从 detailViewControllers 的 viewDidLoad 方法内部访问 MasterViewController 中的“currentResponse”变量的方法
- 一种通过 StoryBoardID 查找 MasterViewController 的方法
我试过的:
- 将 NSLog() 语句放在每个 viewController 的 prepareForSegue 中——没有一个被调用
- 挖掘 detailViewController 中的 self.parentViewController 链,找到调用 performSegueWithIdentifier 的 MasterViewController——我找不到我要查找的类变量
- 阅读我能找到的几乎所有“prepareForSegue not called”帖子——它们似乎都是由于我在代码/故事板中没有看到的一些编码/故事板错误
问题可能是我在打电话:
[self.navigationController performSegueWithIdentifier:@"theDesiredSegue" sender:self];
从 handleLoadedResponse:notif 回调内部,应用程序试图在我的解析对象中调用 prepareForSegue?
TIA
射线