【发布时间】:2013-01-01 23:39:20
【问题描述】:
我有一个从 Xcode 4.5 的样板主从应用程序创建的应用程序,其中 CoreData、StoryBoards 和 ARC 已打开,但未调用 prepareForSegue。 CoreData 目前没有被使用,但它将用于缓存 XML 响应。 performSegueWithIdentifier 有效,但 prepareForSegue 无效,我在将数据从 MasterViewController 传递/访问到 performSegueWithIdentifier 创建的 detailViewController 时遇到了麻烦。
我的基本设置类似于线程中讨论的内容:Storyboards and 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
雷
【问题讨论】:
标签: ios uisplitviewcontroller uistoryboardsegue