找不到UITableView Prototype单元格

时间:2014-10-11 22:59:12

标签: swift prototype cell

每一个人。 经过大量的搜索和不同的测试,我的代码还没有工作......

我尝试使用" dequeueReusableCellWithIdentifier"使用简单的原型单元格做一个简单的UITableView。但是这个功能还没有找到我的Prototype Cell。

我的代码:

import Foundation
import UIKit

class DanceClubViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var tableViewSound: UITableView!

override func viewDidLoad()
{
    super.viewDidLoad()

    self.tableViewSound.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cellVote")
    self.tableViewSound.dataSource = self
    self.tableViewSound.delegate = self
    self.tableViewSound.reloadData()
}

override func viewWillAppear(animated: Bool) {

    super.viewWillAppear(animated)
}    

@IBAction func backToViewPlay(sender: AnyObject) {

    self.navigationController?.popToRootViewControllerAnimated(true)        
}

func tableView(tableView:UITableView, numberOfRowsInSection section:Int)->Int
{
    return 10
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    var cell : UITableViewCell = self.tableViewSound.dequeueReusableCellWithIdentifier("cellVote") as UITableViewCell

    return cell
}

如果有人已经遇到过这个问题?

我的Prototype Cell的标识符是:cellVote

1 个答案:

答案 0 :(得分:2)

解决标签问题的关键是在另一个文件中创建自定义TableViewCell类:

import UIKit

class DanceCell: UITableViewCell {

    @IBOutlet weak var num: UILabel!  //connect the label

}

然后是你的ViewController:

import Foundation
import UIKit

class DanceClubViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var tableViewSound: UITableView!


    override func viewDidLoad()
    {
        super.viewDidLoad()

        self.tableViewSound.dataSource = self
        self.tableViewSound.delegate = self
        self.tableViewSound.reloadData()
    }

    override func viewWillAppear(animated: Bool) {

        super.viewWillAppear(animated)
    }

    @IBAction func backToViewPlay(sender: AnyObject) {

        self.navigationController?.popToRootViewControllerAnimated(true)
    }


    func tableView(tableViewSound:UITableView, numberOfRowsInSection section:Int)->Int
    {
        return 10
    }

    func tableView(tableViewSound: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cell = tableViewSound.dequeueReusableCellWithIdentifier("cellVote", forIndexPath: indexPath) as DanceCell

        cell.num.text = "Hello"

        return cell
    }
}

我删除了一些东西,并在'cellForRowAtIndexPath'函数中添加了关键字来注册单元格。然后,我能够与标签进行沟通。确保原型单元格在属性检查器中将“cellVote”设置为标识符。