cellForRowAtIndexPath未显示Realm对象数据

时间:2016-05-15 23:28:07

标签: ios swift tableview realm

我尝试使用Realm来创建用户数据。我知道Realm正在保存正确的数据,我可以访问我需要的某些数据,即我试图在自定义单元格中的标签上显示的名称。

我的视图控制器代码

class MeetupListViewController: ToolbarTabSuper, UIViewControllerTransitioningDelegate, UITableViewDelegate, UITableViewDataSource {



@IBOutlet var tableView: UITableView!
@IBOutlet weak var toolbarView: UIToolbar!


var realm: Realm!
lazy var results: Results<Meetup> = { self.realm.objects(Meetup).sorted("meetupName") }()
var meetups = [Meetup]()
var items: [String] = ["We", "Heart", "Swift"]

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "Meetup List"
    self.toolbarView.barTintColor = tabToolbarColor
}

override func viewWillAppear(animated: Bool) {
    super.viewDidAppear(animated)
    tableView.reloadData()
}

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

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

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! MeetupCellTableViewCell
    let item = results[indexPath.row]
    cell.label?.text = item.meetupName
    return cell
}

自定义单元格的代码

class MeetupCellTableViewCell: UITableViewCell {

var meetupName = UILabel()
@IBOutlet var label: UILabel!

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)

    self.contentView.addSubview(meetupName)
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

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
}

}

识别的重用是在故事板中设置的,我在其中创建了带有我想要使用的图像的标签。看来cellForRowAtIndexPath函数甚至没有被调用。一切似乎都是从我在网上看到的,但它根本就没有出现。

1 个答案:

答案 0 :(得分:3)

如果您在delegate内使用tableView,则应将data sourceViewController设置为自我,以便将tableView与您的函数挂钩。

看起来应该是这样的:

self.tableView.delegate = self
self.tableView.dataSource = self