如何在Swift 4中用程序创建应用程序时为@objc函数添加参数



我一直在以前的帖子中找到我的答案,尽管还没有找到这个问题的任何答案。

在故事板的帮助下创建了多个应用程序之后,我现在只使用代码制作我的第一个应用程序。

我的问题是,我只是想做一个简单的函数(在Firebase中创建用户并执行到下一个屏幕的segue(,它将在按下按钮后执行。

我可以创建一个触发segue的函数,尽管出于某种原因,似乎不可能在同一个函数中创建用户(Firebase函数,需要用户从textFields输入(。在下面定义的函数中,我不能使用我在ViewDidLoad函数中编程定义的textFields的当前用户输入,也不能在@objc函数中创建参数。

@objc func registerPressed(email: String, password: String) {
performSegue(withIdentifier: "MainVC", sender: nil)
}

我能做什么?有没有办法在上面的函数中创建参数?有没有比使用addTarget更简单/更好的方法?我可以用@IBAction电话吗?我应该在ViewDidLoad函数之前定义我的textFields吗?

不,你不能做这个

@objc func registerPressed(email: String, password: String) {

对于按钮目标选择器,因为唯一通过的参数是

@objc func registerPressed(_ sender:UIButton) {

这是合乎逻辑的,因为你认为按钮会从哪里为你获得这些参数,所以你必须为文本字段创建出口,并在发送到防火基地之前对其进行验证

BTW为按钮创建addTarget方法或将其与@IBAction链接没有区别

有一个完全标准的模式。电子邮件和密码信息必须已存在于实例属性中。您触发segue,将调用prepare(for:);它从属性中获取信息,并将它们传递到目标视图控制器中。

最新更新