我当前的设置
ViewController3 :
此ViewController垂直堆叠有18个TextFields
。这是“设置”屏幕,用户可以在其中添加其默认文本(单个单词,注释或句子)。此视图还具有一个save
按钮,可以使用UserDefaults
保存,效果很好。
要访问此视图(设置屏幕),用户通过show segues点击位于主视图(settings
)上的ViewController1
按钮。一旦对默认文本进行了所有编辑(通常是一次关闭并一次又一次地重复使用),则他们点击save
按钮,然后点击Done
按钮以返回到ViewController1
。
ViewContoller2 :
此ViewController具有匹配的18个TextField(再次垂直堆叠),但是每个都有一个选择开关。如果开关处于活动状态,则意味着选择了TextField
。在垂直堆叠的18个TextFields
中,用户可以选择任意给定数量的它们。
然后,将选定的内容填充为从Send Email
上的ViewController1
按钮发送的电子邮件的邮件正文中的选定文本列表。
ViewController1 :
这是应用程序的主视图,在该视图中,应用程序将所需的文本输入多个TextFields
后将发送电子邮件,并且其中包括TextView
,该文本具有从{ {1}}
注意:在ViewController之间的所有过渡都是通过show segues。
问题1:
什么代码或如何编写代码以使ViewController2中的TextField能够自动填充(复制或镜像)已输入到ViewController3中的TextField中的文本?
问题2:
如何从ViewController2中获取选定的TextField,以邮件列表的形式显示在电子邮件正文中,但垂直堆叠在它们的单独行上?
答案 0 :(得分:0)
好吧,让我看看我是否不知所措。
如果您使用segues,我相信在VC3上注册或更改数据时不会实例化VC2。因此,NotificationCenter不是像@dahiya_boy这样的选项。
如果您将所有数据保存在UserDefaults上,那么当用户打开VC2屏幕(可能在viewDidLoad
上时)是否只能加载这些数据并应用于VC2上的每个TextField上
您的第二个问题...问题是什么?
如果问题是在VC2和VC1之间传递数据,则可以使用NotificationCenter或委托。
如果问题在于如何将其显示为堆栈,则可以将其作为数组从VC2传递到VC1,并使用joined(separator:)
附加所有内容,并传递\n
作为分隔符。 (换行符)