在Swift中的另一个文件中使用单元格

时间:2015-06-11 09:41:34

标签: ios swift uitableview

我想将UITableView单元格的内容保存在一个单独的文件中,就像在Objective-c中一样,即使在我的TodayExtension Swift表格中也是如此,以便将它连接到故事板。然而,当我尝试这样做时,它抱怨它无法找到细胞的类别;这是我使用的功能:

override func tableView(tableView: UITableView,
    cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        println(indexPath)
        let cell = tableView.dequeueReusableCellWithIdentifier(
            TableViewConstants.cellIdentifier,
            forIndexPath: indexPath) as! TodayCell
        let entry = busCollection[indexPath.row]
        cell.bus=entry.bus
        cell.destination=entry.destination;
        return cell

}

todayCell是它报告找不到的另一个文件中的类:

import UIKit
class TodayCell: UITableViewCell {
     @IBOutlet var bus: UILabel!
     @IBOutlet var stopAddress: UILabel!
     @IBOutlet var destination: UILabel!
}

导入文件,即使根据Swift文档不需要,也会在import语句中移动错误。

2 个答案:

答案 0 :(得分:0)

<强>编程:

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.registerClass(todayCell.self, forCellReuseIdentifier: "todayCell")
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("todayCell", forIndexPath: indexPath) as! todayCell

    // Setup

    return cell
}

这应该这样做。

<强>故事板:
如果您正在使用原型,那么您只需将原型类设置为todayCell和标识符。当您在tableView.dequeueReusableCellWithIdentifier()

中创建单元格时,将使用此标识符

identifier

class

答案 1 :(得分:0)

我发现了问题:当我将新的TodayCell文件添加到项目中时,Xcode忘记将新的TodayCell文件添加到编译源列表中。一旦我手动完成它一切正常 - 我在MKStoreManager库中的错误列表中有一个有趣的恐怖之旅,但所有这些都在返回到最后一次提交时消失了。