2016-08-05 2 views
-1

私はとても速いので、私と一緒にクマに新しいです。別のビューからテーブルビューセルを挿入するにはどうすればいいですか?

私はユーザーが食料品リストを作成できる場所にアプリを作ろうとしています。私はいくつかのサンプルセルを持つカスタムセルを持つテーブルビューを持っています。ユーザーがアイテム、価格、アイテムの量を入力できる新しいビューを表示するボタンがあります。新しい項目でテーブルを更新したいボタンがあります。私はテーブルを更新するようには思えない。助けてください。

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

これは 'list.append(_)'、 'price.append()'、 'amount.append()'と呼ばれるタイプミスですか? 'ListView?.list.append()'、 'listView?.price.append()'などの代わりに 'AddItemsViewController'の@IBActionを使用していますか? – cpimhoff

+0

私はそうは思わない、フィールドにテキストを追加すると、ボタンが押されたときに配列が正しく更新されているように見える。ただ、テーブルビューを更新するのは難しい。 –

+1

これらのlist.append()、price.append listView?listTableView.reloadData()をどこかで呼び出す必要があります。 – onnoweb

答えて

1

私は

  • AddItemViewControllerを次のようにこれはやって行くだろうかと思います - ユーザーが追加するコアデータとデータへのリンクが
  • コアデータテーブルに追加する必要がありますまた、私はあなたのコードで私はAddItemViewControllerへのリンクが表示されていないか分からない。あるView Controllerから別のView Controllerにどのように移行しているかについてもっと説明できますか?
  • ListTableViewControllerでは、コアデータテーブルとショーケースのデータをテーブルビューで取得する必要があります。

希望すると便利です。あなたが解決策を解明するために何らかの明確化と幸運が必要な場合は教えてください

関連する問題