3

我正在创建一个应用程序,目前有 6 个视图控制器,现在在视图控制器 6 中我有一个文本字段,当他们编辑它时,它需要在视图控制器 3 中编辑一个标签,我如何链接在 viewcontroller6.h 中声明的插座在情节提要中到视图控制器 3 中的内容?我知道它很复杂,但任何帮助都会非常棒!:) 谢谢

4

3 回答 3

1

首先,在您的 viewcontroller6 中,您需要 #import "viewcontroller3.h"。然后在viewcontroller6.m中,可以创建viewcontroller3的实例。然后,您可以访问 viewcontroller3 的所有数据。您可以从 viewcontroller6.m 设置 viewcontroller3 实例中的数据并推送到 viewcontroller3 的视图,您的数据应该在那里。

虽然如果它是一个标签,你可能需要在你的 viewcontroller3.h 中创建一个 NSString* stringText 的属性,并在你的 viewcontroller3.m 文件中合成它,然后在 view controller6 中,将该字符串设置为 viewcontroller6 中声明的出口值。在你将它推送到视图控制器 3 之后。在视图控制器 3 的 viewdidload() 中执行 label.text = stringText 之类的操作;

所以现在,您在 viewcontroller3 中的标签应该更新为 stringText.. 中的任何内容,它是从 viewcontroller6 设置的。

于 2012-08-01T04:58:23.577 回答
1

您不能在情节提要中将出口从 vc6 链接到 vc3。将数据从 vc6 传递到 vc3 有多种方法:

  1. 使用委托模式(如 Dustin 所述)将文本字段数据从 vc6 传递到 vc3。但是,如果您的视图控制器按顺序从 vc3 到 vc4 到 vc5 到 vc6 链接,则使用这种方法可能会很乏味。

  2. 使用共享实例(单例)。我使用这里的代码。如果您要传递大量数据,我会推荐这种方法。

  3. 使用 NSUserDefault 记住文本字段数据,并在 vc3 中显示标签时,使用 [NSUserDefaults standardUserDefaults] 读回值。如果您只有很少的数据要传递,那就太好了。此方法的另一个优点是您可以记住此数据以供下次启动,并且可以在 vc6 中的文本字段显示给用户输入之前正确显示 vc3 中的标签。

于 2012-08-01T01:25:54.447 回答
0

我之前回答过类似的问题:

示例:代表

快速的回答是,你不能真正将 vc6 中的插座“链接”到 vc3 中的某些东西,就像在 IB 中使用控制拖动一样。完成你想要的最好的方法是使用委托模式,我在链接的问题中概述了它。

这需要一些额外的工作,但这是一项非常重要的技能。

于 2012-08-01T00:31:00.950 回答