わたしの無謀な試みはcellForRowAtIndexPath
を呼んでいません。セットアップが正しくないと思っています。UITableViewの内部でUITableViewを読み込む最良の方法は何ですか?
let wordTableView = WordTableView(frame: CGRectZero)
wordTableView.delegate = self
wordTableView.dataSource = self
wordTableView.words = words
let currentCell = wordTableView.cellForRowAtIndexPath(indexPath)
cell.contentView.addSubview(wordTableView)
wordTableView.viewDidLoad()
wordTableView.reloadData()
。しかし実際には何もロードされません。私がDebug View Hierarchyを見ると、何も追加されていないことがわかります。だから私は、このtableViewのインスタンス化について特に何かが欠けていると仮定します。
参考までに、これは私のUITableViewです。しかし、正直言って、私は完全には、UITableViewがインスタンス化する必要があるものを完全に推測しています。そして、これは私の最高の試みのようになります。
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 = "Sanskrit" //word.valueForKey("sanskrit")
cell.definition.text = "Definition" // word.valueForKey("definition")
return cell
}
}
質問 - なぜあなたは別のテーブルビューのセル内のテーブルビューを入れていますか?メインテーブルビューを単に分割する方が簡単ではないでしょうか?そして、 'viewDidLoad'というメソッドを非ビューコントローラクラスに入れるのは本当に混乱します。 – rmaddy
@rmaddy Yah、尋ねてくれてありがとう。私が明らかにしようとしている動的な順序付けされたリストです。以前は、私はUILabelsとUIViewでそれをやろうとしていましたが、そのすべてのダイナミックで主にプログラム的なので、私のnewb自身のために地獄になっていました。なぜなら、xibとUITableViewをリスト。どう思いますか? – Trip
私があなただったら、メインテーブルビューに行やセクションを追加するだけです。ネストした表のビューは、スクロールおよびタッチ・イベントであらゆる種類の問題を引き起こす可能性があります。 – rmaddy