arrays - 如何将第二个 viewcontroller 文本字段值传递给第一个 viewcontroller 数组并在 swift4 中点击按钮时关闭

标签 arrays swift dismiss

我有两个 View Controller ,我想将第二个 View Controller 文本字段值发送到第一个 View Controller 数组,并在点击按钮时关闭第二个 View Controller 。

这是我的代码:

在第一个VC中:

我已经创建了数组:

var iteamsArr = [String]()

在第二个VC中:

class CreatePopUpViewController: UIViewController {


var popData: String?
var createBussnss = CreateBusinessViewController()// is my firstVC name
@IBOutlet weak var addTf: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
}

@IBAction func saveButn(_ sender: Any) {

  createBussnss.iteamArray.append(addTf.text!)

    dismiss(animated: true, completion: nil)
}

}

这里 viewcontroller 正在关闭,但是没有将值添加到第一个 viewcontroller 中 请帮助我

最佳答案

使用委托(delegate)。

protocol CreatePopUpDelegate: class {
     func createPopUpDidSaveTextFieldPick(_ value: String)
}

然后在第一个 View Controller 中:

extension FirstViewController: CreatePopUpDelegate {
    func createPopUpDidSaveTextFieldPick(_ value: String) {
        print ("first view controller now has value of textfield")
        // add it to array or whatever
}

然后在第二个 View Controller 中:

class CreatePopUpViewController: UIViewController, MyDelegate {
    weak var delegate: CreatePopUpDelegate?

@IBAction func saveButn(_ sender: Any) {

    createBussnss.iteamArray.append(addTf.text!)

    delegate?.createPopUpDidSaveTextFieldPick(addTf.text!)
    dismiss(animated: true, completion: nil)

代码中的某处你只需要做:

secondViewController.delegate = firstViewController.

在这种情况下,secondViewController 是从 firstViewController 实例化和呈现的,因此您只需执行以下操作:

secondViewController.delegate = self

此外,作为一般建议,请准备好 Swift 代码指南。在 Swift 中,首选更长更清晰的名称。

代替saveButn,执行saveButton

代替addTf,执行addTextField

代替createBussnss,执行createBussiness

同时避免做 !,最好做 guard let text = textField.text else { return

祝你好运! 它更清晰、更好的代码。

关于arrays - 如何将第二个 viewcontroller 文本字段值传递给第一个 viewcontroller 数组并在 swift4 中点击按钮时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56037163/

相关文章:

c++ - 如何在 C++ 中声明不同大​​小的数组?

java - 添加随机生成的分数,看看它们是否等于 10(存储在数组中)

快速在 View 内创建一条用户可以调整大小的线

iOS 13/14 模态视图 Controller 解除检测

ios - 在 swift 2.0 中解析 JSON 时出错

ios - 应用程序启动时崩溃,可能与存储的属性有关?

ios - 如何使用 SwiftUI 调用电话

iOS 在搜索栏外部点击时关闭键盘

android - 如何限制 AutoCompleteTextView 下拉菜单关闭?

java - 如何比较Java中的两个对象数组?