如何从单独的视图中插入表视图单元格?

时间:2016-08-05 19:15:22

标签: ios swift class

我很快就会对我这么做。

我试图创建一个用户可以制作购物清单的应用程序。我有一个带有一些样本单元的自定义单元格的表格视图。我有一个按钮,可以显示一个新视图,用户可以在其中输入项目,价格和项目数量。有一个按钮,我想用新项目更新表。我似乎无法更新表格。请帮忙。

这是我的代码:

import UIKit


var list = ["Chips", "Milk", "Eggs", "Meat"]
var price = [3.99 , 4.99 , 5.99, 12.99]
var amount = [1 , 1 , 12 , 1 ]
var note = ["Need some cheetos!", "Chocolate or vanilla?", "" , "I LOVE RIBEYES!!!"]

class ListTableViewController: UITableViewController {

    @IBOutlet var listTableView: UITableView!

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return list.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! ListCell 

        cell.itemName.text = list[indexPath.row]

    /*  cell.itemNote.text = note[indexPath.row]

        let priceString = "$\(price[indexPath.row])"
        cell.itemPrice.text = priceString

        let amountString = "\(amount[indexPath.row])"
        cell.itemAmount.text = amountString
    */

        return cell
    }

    func insert() {
        list.append("test")

        let insertionIndexPath = NSIndexPath(forRow: list.count - 1, inSection: 0)

        tableView.insertRowsAtIndexPaths([insertionIndexPath], withRowAnimation: .Automatic)
    }

第二节课。

class AddItemViewController: UIViewController {

    var listView: ListTableViewController?

    var checkPrice : Double = 0
    var checkAmount : Int = 1  

    @IBOutlet weak var itemNameTextbox: UITextField!
    @IBOutlet weak var itemPriceTextbox: UITextField!
    @IBOutlet weak var itemAmountTextbox: UITextField!
    @IBOutlet weak var itemNoteTextbox: UITextField!
    @IBAction func AddItemButton(sender: AnyObject) {

    // Checks if price is a valid number
    if (Double(itemPriceTextbox.text!) != nil){

        checkPrice = Double(itemPriceTextbox.text!)!

        print(checkPrice)
    } else {
        checkPrice = 0
        print("ERROR: Didn't enter a number \(checkPrice)")

    }

    // Checks if amount is a valid number
    if (Int(itemAmountTextbox.text!) != nil){

        checkAmount = Int(itemAmountTextbox.text!)!
        print(checkAmount)

    } else {
        checkAmount = 1
        print("ERROR: Didn't enter a number \(checkAmount)")

    }

    //Updates the inforamtion in arrays
    list.append(itemNameTextbox.text!)
    price.append(checkPrice)
    amount.append(checkAmount)
    note.append(itemNoteTextbox.text!)    
    }
}

1 个答案:

答案 0 :(得分:1)

我想我将如何做到这一点如下

  • AddItemViewController - 将其链接到核心数据,并将用户添加的数据添加到核心数据表中
  • 另外我不确定你的代码中我没有看到AddItemViewController的链接。您能否详细解释一下如何从一个视图控制器转换到另一个视图控制器?
  • 在ListTableViewController中,您应该从核心数据表中检索数据并在表格视图中展示。

希望这有帮助。如果您需要任何澄清和解决问题的好运,请告诉我