2016-10-02 4 views
0

私はユーザーが3つの入力を与える3つのテキストフィールドを持っています。FirebaseのすべてのデータをSwiftの1つのテーブル行に取り込む方法は?

これらの3つの入力をすべて同じ行に表示したいのですが、今では自分のアプリケーションが1つの行自体に各値を表示しています。

私のJSONは、ルートBilletSalgから成り、それは3つのキーがあるtickets含まれています:PriceTicketNameNameを。それらの値は、別のビューコントローラーでユーザーによって入力されます。

Name値とticketName値、最後に第三列に新しい行、私は3つのキーが同じ行に表示されたいが、今の私はprice値を持つ行を取得し、。

これは私のコードです:

import UIKit 
import Firebase 

    class TestTableViewController: UITableViewController { 
var files: [FIRDataSnapshot]! = [] 
func mini() { 
    let ref = FIRDatabase.database().reference().child("BilletSalg") 
    let usersRef = ref.child("tickets").childByAutoId().observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in 

     self.files.append(snapshot) 

     print(snapshot) 


}) 
} 

let cellNavn = "cellNavn" 

    var holes: [FIRDataSnapshot]! = [] 


let CoursesRef = FIRDatabase.database().reference().child("BilletSalg") 





override func viewDidLoad() { 
    super.viewDidLoad() 

    CoursesRef.observeEventType(.Value, withBlock: { snapshot in 




     self.holes = snapshot.childSnapshotForPath("tickets").children.allObjects as! [FIRDataSnapshot] 
    self.tableView.reloadData() 

    }) 

    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: #selector(handleCancel)) 

    tableView.registerClass(NavnCell.self, forCellReuseIdentifier: cellNavn) 




} 


func handleCancel() { 
    dismissViewControllerAnimated(true, completion: nil) 
} 

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

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



    // I want 3 labels to display the 3 values typed by the user, so in each Row you can view the 3 values 

     cell.detailTextLabel?.text = self.holes[indexPath.row].value as? String 


//  cell.textLabel?.text = self.holes[indexPath.row].value as? String 
// 
    //  cell.anotherlabel.text? = self.holes[indexPath.row].value as? String 


    return cell 

    } 

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return 72 
} 





} 

答えて

0

あなたは新しい迅速なファイルのUITableViewCellを作成する必要がありますし、あなたのtableViewプロトタイプセルはそののUITableViewCellのサブクラスでなければなりません。私は、あなたがNavnCellという名前のUITableViewCellを持っていると思います。次に、あなたのプロトタイプセルにtableview(firstLabel、secondLabel、thirdLabelという名前が付けられています)にラベルを追加し、UITableViewCell.swiftファイルにアウトレットを追加する必要があります。その上cell.firstLabel.text、cell.secondLabel.textとして

機能(NSIndexPath::のUITableView、cellForRowAtIndexPath indexPathのtableView)次に、あなたの

のtableViewでそれらを参照してください。

+0

わかりません。ごめんなさい!おそらくもっと詳しく説明できますか?私はNavnCellという名前のUITableViewCellを持っています。 – Frederic

+0

NavnCellファイルに別のラベルを作成しましたが、それでも配列の「最初の」値を取得し、次のセルに配列の「2番目の値」を設定します。 @AtakanCavuslu – Frederic

関連する問題