首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VC中使用Delegates移动数据?

如何在VC中使用Delegates移动数据?
EN

Stack Overflow用户
提问于 2017-03-21 22:23:55
回答 3查看 75关注 0票数 0

点击sendDate时,如何将存储在data中的数据移动到下一个VC中,并将其追加到我的列表中?下面是我的发送类的代码:

代码语言:javascript
复制
protocol DataSentDelegate{
     func userDidEnterData(data: String)
}
class SecondViewController: UIViewController{

var delegate: DataSentDelegate!

@IBAction func addItem(_ sender: Any)
{
    let data = textField.text
    delegate?.userDidEnterData(data: data)
}

下面是接收类的代码:

代码语言:javascript
复制
class SecondPageViewController: UIViewController, DataSentDelegate{

func userDidEnterData(data: String) {

}

@IBAction func sendDate(_ sender: UIDatePicker) {

}

如何在data保存textField.text值的情况下实现list.append(data!)

EN

回答 3

Stack Overflow用户

发布于 2017-03-23 02:25:57

你不需要在SecondPageViewController中将委托设置为self (通常在ViewDidLoad中?

您声明了它,但似乎没有分配它。

票数 1
EN

Stack Overflow用户

发布于 2017-03-23 02:49:01

您可以使用Singleton模式在整个项目中共享数据。

单例类只初始化一次。

看看这些答案:

Swift - set delegate for singleton

票数 1
EN

Stack Overflow用户

发布于 2017-03-22 05:30:12

如果你只是在你的SecondPageViewController中添加一个数组变量来保存一个字符串列表,然后在每次调用sendDate委托方法时追加一个新的字符串,怎么样?

另外,如果你使用的是可选链接,就不需要声明你的委托变量是隐式解包的,只要把它声明为可选的即可。其次,因为SecondPageViewController是一个类,所以最好将您的委托协议类绑定为:protocol DataSentDelegate: class { func userDidEnterData(data: String) }。第三,为了避免可能的强引用循环使您的委托变量成为弱引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42929830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档