我有一个UITableView类,我试图在另一个UITableView的单元格中实例化。无论出于何种原因,它都没有出现或者甚至没有被加载。
let words = self.page.valueForKey(categories[parent])!.allObjects as! [Word]
let wordTableView = WordTableView(frame: CGRectZero)
wordTableView.delegate = self
wordTableView.dataSource = self
wordTableView.words = words
cell.contentView.addSubview(wordTableView)
我的WordTableView.swift
看起来像这样:
class WordTableView: UITableView {
var words = [Word]()
func viewDidLoad() {
self.registerNib(UINib(nibName: "WordCell", bundle: nil), forCellReuseIdentifier: "wordCell")
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return words.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("WordCell", forIndexPath: indexPath) as! WordCell
let word = words[indexPath.row]
cell.sanskrit.text = "wazzuuuup"
cell.definition.text = "my defination station!"
return cell
}
}
如果我在我的WordTableView类中放置一个断点,它就永远不会被调用。
答案 0 :(得分:1)
如前所述,您可能需要在wordTableView
上设置框架。您还需要执行以下操作:
致电wordTableView.viewDidLoad
。这不会自动为您调用。此功能仅在视图控制器上自动调用。
致电wordTableView.reloadData
。
这样的事情:
wordTableView.frame = ...
cell.contentView.addSubview(wordTableView)
wordTableView.viewDidLoad()
wordTableView.reloadData()