gpt4 book ai didi

ios - performSegueWithIdentifier 替换 detailViewController 有效,但未调用 prepareForSegue

转载 作者:行者123 更新时间:2023-11-29 11:04:54 26 4
gpt4 key购买 nike

我有一个应用程序是从 Xcode 4.5 的样板主从应用程序创建的,它打开了 CoreData、StoryBoards 和 ARC,但没有调用 prepareForSegue。当前未使用 CoreData,但它将用于缓存 XML 响应。 performSegueWithIdentifier 有效,但 prepareForSegue 无效,我在将数据从 MasterViewController 传递/访问到由 performSegueWithIdentifier 创建的 detailViewController 中时遇到了麻烦。

我的基本设置类似于线程中讨论的内容:Storyboards and UISplitViewControllers .第三页有一张 Storyboard图片,与我的设置非常相似(我没有足够的代表来发布图片)。

简而言之:

  1. 我创建了一个标准的 splitView 安排
  2. MasterViewController 构建主表
  3. 每个单元格都对应一个 URL,该 URL 返回确定 detailView 中内容的 XML 数据
  4. 使用 NSXMLParser 操作/类解析获取的 XML
  5. 获取的 XML 确定需要哪个详细 View ,MasterViewController 调用适当的“替换”segue(通过 performSegueWithIdentifier)启动相应的 detailViewController 以显示获取的 XML

我遇到的问题是没有调用 prepareForSegue,所以我无法将获取的 XML 传递给 detailViewController。

我需要的是以下之一:

  • 准备执行Segue
  • 一种了解 handleLoadedResponse:notif 内的 segue.destinationViewController 的方法
  • 从 detailViewControllers 的 viewDidLoad 方法内部访问 MasterViewController 中的“currentResponse”变量的方法
  • 一种通过 StoryBoardID 找到 MasterViewController 的方法

我尝试过的:

  • 将 NSLog() 语句放在每个 viewController 的 prepareForSegue 中——它们都不被调用
  • 在 detailViewController 中挖掘 self.parentViewController 链以找到调用 performSegueWithIdentifier 的 MasterViewController —— 我找不到我正在寻找的类变量
  • 阅读几乎所有我能找到的“prepareForSegue not called”帖子——它们似乎都是由于一些我在代码/ Storyboard中看不到的编码/ Storyboard错误

问题可能出在我打电话:

[self.navigationController performSegueWithIdentifier:@"theDesiredSegue" sender:self];

从 handleLoadedResponse:notif 回调内部,应用程序正试图在我的解析对象中调用 prepareForSegue?

TIA

最佳答案

嗯,把这归因于盯着代码看的时间太长和/或新手。

在对我认为很明显的所有内容进行三重检查后,我认为唯一剩下的就是 segue 代码在 NSXMLParser 回调中的行为不正确,所以我切换了 handleLoadedResponse:notif 例程来存储已解析的数据并发出通知。

在调试这些更改时,我意识到我的 segues 附加到了错误的对象。它们实际上附加到 navigationController 而不是我的 viewController。从视觉上看,事情看起来像 RWForums: Storyboards and UISplitViewControllers 第三页上的 Storyboard,但他们真的不是。最终结果是,尽管看起来我的代码正在调用 performSegueWithIdentifier 并且应该调用它的 prepareForSegue 方法,但它实际上是在调用 navigationController 的 segue,因此正在调用 navigationController 的继承 prepareForSegue。

建议:确保在打开文档大纲的情况下重新检查 Storyboard 编辑器中的所有连接。

关于ios - performSegueWithIdentifier 替换 detailViewController 有效,但未调用 prepareForSegue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com