将文本字段传递给swift中第二个视图控制器中的标签

时间:2017-07-30 03:03:15

标签: ios swift list

我使用tableView在每行中创建一个简单的客户发票清单,并带有自定义标签。在顶部,您单击加号。这会将您带到第二页,您可以在其中输入客户名称。你点击保存,它应该将它添加到第一个视图控制器中的标签。我无法让它发挥作用。

我的tableview故事板中有一个名为ViewController.swift的文件 - 其中

import UIKit

var invoiceList = [""]

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource   {

    @IBOutlet var clientTableView: UITableView!

    @IBOutlet var clientLabel: UILabel!

    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
     return invoiceList.count
    }


    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCell(withIdentifier: "clientItem", for: indexPath) as! UITableViewCell

        let ClientName = invoiceList[indexPath.row]
        cell.textLabel?.text = [clientInput]

        return cell
    }

    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == UITableViewCellEditingStyle.delete
        {
            invoiceList.remove(at: indexPath.row)
            clientTableView.reloadData()
        }
    }

    override func viewDidAppear(_ animated: Bool) {
        clientTableView.reloadData()
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

我在第二个故事板中输入文本字段。文件名为AddInvoiceItem.swift。在其中 -

import UIKit

class AddInvoiceViewController: UIViewController  {

    var clientTextField:String!
    @IBOutlet var clientInput: UITextField!

    @IBAction func addItem(_ sender: Any) {

        if clientInput.text != ""
        {
        invoiceList.append(clientInput.text!)
        clientInput.text = ""

        _ = navigationController?.popViewController(animated: true)
        }
    }

    @IBAction func cancelBtn(_ sender: Any) {

        _ = navigationController?.popViewController(animated: true)

    }

}

当我尝试使用代码行时,我的错误仍然存​​在

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCell(withIdentifier: "clientItem", for: indexPath) as! UITableViewCell

        let ClientName = invoiceList[indexPath.row]
        cell.textLabel?.text = [clientInput]

        return cell
    }

cell.textLabel?.text = [clientInput] 我知道这是错的,但无法弄明白!

enter image description here

1 个答案:

答案 0 :(得分:0)

制作新的细胞类

class CustomCell: UITableViewCell {
     //Make your outlets here, connect the outlets from cell in your storyboard like ClientNameLabel



}

请选择故事板上的单元格,然后在此字段中输入您的课程名称。在你的情况下,它将是CustomCell

enter image description here

然后在ViewController

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCell(withIdentifier: "clientItem", for: indexPath) as! CustomCell

        let ClientName = invoiceList[indexPath.row]
        cell.ClientNameLabel.text = ClientName

        return cell
    }