TextField 文本需要镜像来自另一个 ViewController 的 TextField 输入的文本



我当前的设置

视图控制器3

此视图控制器有 18 个垂直堆叠的TextFields。这是"设置"屏幕,用户可以在其中添加其默认文本(单个单词,注释或句子(。此视图还有一个save按钮,可以使用UserDefaults保存,该按钮工作正常。

要访问此视图(设置屏幕(,用户通过显示 segue 点击位于主视图(ViewController1(上的settings按钮。对默认文本完成所有编辑后(通常是一次关闭并一次又一次地重复使用(,他们点击save按钮,然后点击Done按钮返回ViewController1

视图控制器2

此视图控制器具有匹配的 18 个文本字段(再次垂直堆叠(,但每个文本字段都有一个选择开关。如果开关处于活动状态,则表示选择了TextField。在垂直堆叠的 18 个TextFields中,用户可以选择任何给定数量的它们。

然后,所选文本将填充为从Send Email按钮发送回ViewController1的电子邮件的邮件正文中的选定文本列表。

视图控制器 1

这是应用程序的主要视图,应用程序将在将所需文本输入多个TextFields后发送电子邮件,它包括具有所选文本列表的TextViewViewController2

注意:视图控制器之间的所有过渡都是通过显示 segue 进行的。

问题1:

什么代码或如何编写代码以使 ViewController2 中的文本字段能够自动填充(复制或镜像(已输入到视图控制器 3 中的文本字段?

问题2:

如何让 ViewController2 中的选定文本字段在电子邮件正文中显示为项目列表,但垂直堆叠在其单独的行上?

好吧,让我看看我是否取消了。

  • VC3 是设置视图,您可以在其中"注册"要在某个时候使用的文本。
  • VC2 是您选择要使用的/发送/任何文本的视图
  • VC1 是主屏幕,您可以在其中显示上面选择的文本

如果您使用的是 segue,我相信当您在 VC3 上注册或更改数据时,您的 VC2 不会被实例化。因此,通知中心不像@dahiya_boy所说的那样是一个选项。

如果要将所有数据保存在 UserDefaults 上,则当用户打开 VC2 屏幕(可能在viewDidLoad上(时,您不能只加载此数据并应用于 VC2 上的每个文本字段吗?

你的第二个问题...问题出在哪里?

如果问题是在 VC2 和 VC1 之间传递数据,则可以使用通知中心或委派。

如果问题是如何将其显示为堆栈,则可以将其作为数组从 VC2 传递到 VC1,并使用joined(separator:)附加所有内容,并将n作为分隔符传递。(换行符符号(

最新更新