当我使用 UITableViewController 创建表视图时,你会得到很多覆盖函数,但是当你使用常规的 UIViewController 时,当你使用这些相同的覆盖函数时会出现错误,你被迫将它们更改为常规函数。我相信这就是为什么我的核心数据不会加载到我的单元格中,并尝试使用 viewDidLoad 函数来加载我的数据。
我知道我的代码应该可以工作,因为我所做的只是将所有代码从UITableViewController传输到UIViewController,而我的代码在我的UITableViewController中工作。
到目前为止我的努力:
override func viewDidLoad() {
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Configure the cell...
let CellID:NSString = "CELL"
var cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier(CellID) as UITableViewCell
if let ip = indexPath as Optional {
var data:NSManagedObject = myList[ip.row] as NSManagedObject
cell.textLabel!.text = data.valueForKeyPath("username") as? String
}
return cell
}
}
覆盖函数是我的单元格为空的原因,还是在使用常规 UIViewController 显示表视图时还有其他方面?
任何建议将不胜感激。
(1) 您必须向类中添加UITableViewDelegate
才能访问委托方法,例如:
class ViewController: UIViewController, UITableViewDelegate {
将UITableViewDelegate
添加到类后,UITableView
委托函数应自动完成。
此外,请确保将UITableView
的委托设置为 self
,以便委托方法填充表。
(2)现在,您的cellForRowAtIndexPath
方法在您的viewDidLoad
之内。移动它,使其不包含在任何其他方法中。