【发布时间】:2018-08-04 07:49:40
【问题描述】:
我正在尝试在 UITableViewCell 中设置 UITableView,并按照Is it possible to add UITableView within a UITableViewCell 的选定答案进行操作
这是包含内部 TableView 的 TableViewCell 类的代码:
import UIKit
class tvc_item: UITableViewCell, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var ivItem: UIImageView!
@IBOutlet weak var lblItemName: UILabel!
@IBOutlet weak var tvInner: UITableView!
var itemdata = Item()
override func awakeFromNib() {
super.awakeFromNib()
setUpTable()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setUpTable()
}
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
override func layoutSubviews() {
super.layoutSubviews()
//tvInner?.frame = CGRectMake(0.2, 0.3, self.bounds.size.width-5, self.bounds.size.height-5)
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func setUpTable(){
tvInner.delegate = self // Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
tvInner.dataSource = self
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return itemdata.rows.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell_itemrow") as! cell_itemrow
cell.lblRowLabel.text = String(itemdata.rows[indexPath.row].size)
return cell
}
}
当我运行代码时,它死在这一行:
tvInner.delegate = self
有错误:
线程 1:致命错误:在展开可选值时意外发现 nil
所以我假设 tvInner 为 nil,但为什么呢?我该怎么办?
tvInner 的插座似乎连接正确,插座图标内显示一个黑圈。
【问题讨论】:
标签: ios swift uitableview