【问题标题】:Segue moving too quickly while passing data?Segue 在传递数据时移动太快?
【发布时间】:2016-04-29 04:25:10
【问题描述】:

我正在制作一个应用程序,用户在文本字段中输入一些数字,然后它会在标签上给出答案。我的答案显示在另一个视图控制器上。在我只有其中一些工作的所有屏幕上使用相同的准备 segue 方法。其他人将传递我在第一个视图控制器标签中的任何文本(我已经通过输入各种内容进行了检查,它显示在另一边)......我还删除了 segue 并确保计算有效第一个视图控制器中的标签正在获取信息。

这让我相信它的设置方式很好,但是 segue 发生得如此之快,以至于在执行 segue 时第一个视图控制器上的标签仍然具有原始文本,并将该信息作为字符串而不是答案...

可以改变吗?这将是我目前写的唯一合乎逻辑的事情。如果有可能怎么解决?

任何帮助将不胜感激。谢谢

编辑:

这是我被要求发布以帮助解决这个问题的全部代码

所以如果在第一个视图控制器中我放了一个“?”标签中的文本只是为了保存标签,在第二个视图控制器中我放了一个“!”在答案标签中保存标签。运行模拟器后的第二个视图控制器,第二个视图控制器将显示一个?第一个标签的文本......所以它确实表明它正在推送数据,它只是没有推送标签中的信息。

【问题讨论】:

  • 可能应该指出我正在快速写作......不是专家,只是作为爱好的人
  • 解决方案似乎很简单,在 segue 发生之前使用 prepareforsegue() 中的计算值,但您可以显示一些代码来获取原因并更好地理解问题。我已经看到标签核心数据是你以某种方式尝试在核心数据中存储价值并从其他视图控制器获取。
  • 添加了一些segue代码,这样你就可以看到了..
  • 所以你是说,当你在第一个标签内(在第一个视图控制器中)执行 segue 时,问号被转移到第二个视图控制器标签,对。那么问题出在哪里,您所说的信息没有传输。
  • 虽然我会尝试,但我真的很难通过写作来解释。通过的问号仅用于确保 segue 有效。在 segue 期间应该传递的实际内容是显示在标签中的答案...示例文本字段 1 + 文本字段 2 = label1 ...当我在没有文本 segue 的情况下运行模拟器时,“label1”显示答案textfield1 + textfield2 虽然标签的持有(在我的示例中是?)文本是发送到第二个视图控制器的内容,而不是正在显示的答案....希望这是有道理的

标签: swift uitextfield uilabel segue


【解决方案1】:

我认为您已经从同一个按钮对另一个视图控制器进行了转场,您正在执行@IBAction func usednroicalc(sender: AnyObject),您要做的就是从视图控制器转场到情节提要中的另一个视图控制器,给您的 segue 标识符并在 @IBAction 内写入您要执行 segue 的位置,即在您的计算写入之后,self.performseguewithIdentifier("your identifier")。您可以通过单击将标识符提供给 segue,然后在检查器中找到标识符标签。 编辑:

在这里,我将 ViewController 场景中以黄色突出显示的 ViewController 拖到 TableViewController 上方的 TableView Controller 场景中的第一响应者。

【讨论】:

  • 我今天会看看,如果它解决了它会告诉你。
  • 我要发送给的 VC 只有一个 segue。我把所有的 self.performseguewithIdentifier("My Identifier", sender:nil) ,它仍然传递相同的信息。在 segue 发布正确的计算答案之前未隐藏的标签,但它不会转移到第二个 VC
  • 我已经尝试了一切来完成这项工作......我应该在 NSUserDefualts 中这样做并以这种方式传递吗?需要更多的代码,但我觉得它会更可靠
  • 好的,所以我浏览了我的插座,它确实说按钮上附加了其他东西..可能是从复制粘贴界面对象到不同的屏幕。我删除了所有的插座,实际上删除了按钮并重新设置了一个不同的按钮,它仍然做同样的事情
  • 这些都不起作用。我正在考虑我已经重建了所有不起作用的 VC,并创建了新的渠道和新的 segue,这些信息不会通过。我不知道这是否是一个快速错误。 VC 的 3/4 工作 1/4 不使用相同的样式和代码。也许是因为我有很多不同的 VC(超过 50 位)使用我不知道的相同技术。我将其归结为一个快速错误并寻找新的方法来使其保持一致。有谁知道我是否可以使用 nsuserdefaults 或 coredata 将信息推送到新的视图控制器?
【解决方案2】:

只是想回答我自己的问题,因为我终于找到了一种推送信息的方法......

您必须在为 segue 做准备而不是在按钮操作中设置代码的计算。按钮操作现在仅设置为新视图控制器的 segue。不是我想要的一切,但它的工作原理。

感谢大家的反馈...希望这对以后的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 2017-03-27
    • 1970-01-01
    相关资源
    最近更新 更多