我尝试使用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函数甚至没有被调用。一切似乎都是从我在网上看到的,但它根本就没有出现。
答案 0 :(得分:3)
如果您在delegate
内使用tableView,则应将data source
和ViewController
设置为自我,以便将tableView与您的函数挂钩。
看起来应该是这样的:
self.tableView.delegate = self
self.tableView.dataSource = self