2017-01-17 8 views
0

スウィフト表示されません。カスタムセルの内容は、私は、カスタム・テーブル・ビューを作成したい

class MainListView: UITableViewController{ 
var invoceList: [InvoceObject] = [] 
@IBOutlet var tbMain: UITableView! 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    self.tableView.register(CustomCell.self, forCellReuseIdentifier: "cell") 
    tbMain.delegate = self 
    self.tbMain.dataSource = self 
    } 

    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning()   
    } 

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

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell   
    cell.lblBuyerName?.text = self.invoceList[indexPath.row].BUYER_NAME 
    cell.lblDate?.text = self.invoceList[indexPath.row].CREATED_AT 
    cell.lblPriceGross?.text = self.invoceList[indexPath.row].PRICE + " " + self.invoceList[indexPath.row].CURRENCY 

    cell.backgroundColor = UIColor(white: 1, alpha: 0.5)  
    return cell 
    } 
} 

そして、私のUITableViewCellクラス:ビルド後

class CustomCell: UITableViewCell { 
@IBOutlet weak var lblBuyerName: UILabel! 
@IBOutlet weak var lblDate: UILabel! 
@IBOutlet weak var lblPriceGross: UILabel! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
} 
override func setSelected(_ selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 
    // Configure the view for the selected state 
} 
} 

私は空のセルを取得し、私はのUITableViewControllerを持っています。私はinvoceList.countのようないくつかの行を持っていますが、ラベルがなく、空のテーブルとして見えます。私は間違っているの?

+0

どのようにして 'invoceList'配列を初期化していますか? –

+0

@NiravD 'cell.textLabel?.text'(カスタムセルなし)を使用するとすべてが問題ないので、問題ありません。 –

答えて

1

UITableViewControllerを使用しているため、接続されたデータソースとデリゲートを持つ暗黙的なtableViewプロパティがあります。あなたはそれを使って混乱を避けるべきです。

プロトタイプセルを使用している場合は、self.tableView.register...行を削除してください。

0

セルの内容が別のxibファイルで定義されている場合は、クラスではなくクラスを登録する必要があります。クラスだけを登録すると、実際のラベルは作成されません。

//Replacing CustomCellNibName with the name of your xib file 
tableView.register(UINib.init(nibName: "CustomCellNibName", bundle: nil), forCellReuseIdentifier: "Cell") 

セルを試作したセルとしてストーリーボードで作成されている場合、あなたはそれを登録する必要はありませんが、ちょうどアイデンティティインスペクタ]タブ、カスタムクラスの下で(ストーリーボードファイルで、あなたのセルを持つクラスを関連付けます)を選択し、使用する名前(この場合は「セル」)を属性インスペクターフィールド識別子の下に記入します。

+0

セルがストーリーボードでプロトタイプセルとして作成され、CustomCell.swiftクラスに関連付けられています。 IDは「セル」です。 –

+1

それから、 "self.tableView.register"行を削除するとうまくいくはずです – davedavedave

関連する問題