iOS Swift Dequeued Reusable Cell没有显示出来

时间:2015-02-24 12:15:03

标签: ios uitableview swift

我之前遵循了一个教程,以获取故事板的基础知识,我正在使用该代码作为参考来编写我正在处理的应用程序。我想测试我的原型单元格布局,但即使我在viewDidLoad中为数组设置了一个值,它仍然拒绝显示任何内容。

import UIKit

class DetailViewController: UIViewController {

    var cards = [Card]()

    @IBOutlet weak var cardsTableView: UITableView!
    @IBOutlet weak var detailDescriptionLabel: UILabel!


    var detailItem: AnyObject? {
        didSet {
            // Update the view.
            self.configureView()
        }
    }

    func configureView() {
        // Update the user interface for the detail item.
        if let detail: AnyObject = self.detailItem {
            if let label = self.detailDescriptionLabel {
                label.text = detail.description
            }
        }
    }

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        //példányosítunk egy cellát
        let cell = tableView.dequeueReusableCellWithIdentifier("CardCell", forIndexPath: indexPath) as CardCell
        //kivesszük a sor adatait a listából
        let card : Card = self.cards[indexPath.row]

        cell.setCardNumber(card.number)
        cell.layer.cornerRadius = 8

        return cell
    }


    override func viewDidLoad() {
        super.viewDidLoad()

            self.cards = [Card(number: 123456789,type: 1)]

            dispatch_async(dispatch_get_main_queue(), {
                self.cardsTableView.reloadData()
    })
        self.configureView()
    }

}

我从Master-Detail结构开始,我将Detail Scene的类设置为DetailViewController,并将Prototype的类和标识符设置为CardCell

class Card{
    let number: Int
    let type: Int

    init(number: Int, type: Int){
        self.number = number
        self.type = type
    }
}


import UIKit
class CardCell: UITableViewCell {

    @IBOutlet weak var cardNumber: UILabel!

    func setCardNumber(number: Int){
        cardNumber.text = String(number)
    }
}

我确定这是基本的东西,但我现在第二天一直在弄乱这个。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:3)

你必须为表视图设置dataSource,我想从不调用委托方法。

另外添加 UITableViewDataSource ,不是必需的,而是比实现更具声明性

class DetailViewController: UIViewController, UITableViewDataSource {