首页 > 解决方案 > Xib文件内的TableView

问题描述

我想在我的 xib 文件中添加表格视图,但出现错误。我的控制器是

class ViewController: UIViewControllerUITextViewDelegate,UITableViewDataSource,UITableViewDelegate{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let identifier = "Cell"

        var cell:UITableViewCell? = yerImleriView.tableView.dequeueReusableCell(withIdentifier: identifier)

        if cell == nil {
            _ =  YerImleri().loadNib() as UIView
            tableView.register(UINib(nibName: "YerImleri", bundle: nil), forCellReuseIdentifier: identifier)
            cell = yerImleriView.tableView.dequeueReusableCell(withIdentifier: identifier)
            cell?.textLabel?.textColor = UIColorFromRGB(rgbValue: 0xEFEFEF)
            cell?.textLabel?.text = items[indexPath.row]
            cell?.backgroundColor = UIColorFromRGB(rgbValue: 0x3A4858)
            cell?.textLabel?.font = UIFont (name: "Proxima Nova", size: 16)
        }
        return cell!
    }
    var items: [String] = ["Katmanlar", "Yer Imleri", "GPS Cihazlari", "Kategorik Arama","Cevrimdisi Haritalar"]

    override func viewDidLoad() {
        super.viewDidLoad()

        yerImleriView.tableView.delegate = self
        yerImleriView.tableView.dataSource = self
}
}

我的 Xib 文件是

class YerImleri: UIView{

    @IBOutlet var contentView: UIView!
    @IBOutlet weak var tableView: UITableView!

    override init(frame: CGRect){
        super.init(frame: frame)
        commonInit()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        commonInit()
    }

    private func commonInit(){
        Bundle.main.loadNibNamed("YerImleri", owner:self, options: nil)
        addSubview(contentView)
        contentView.frame = self.bounds
        contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
    }
}

错误是

*** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合关键内容视图的关键值编码。”

标签: iosswiftuitableview

解决方案


根据理解:您将错误的类作为文件所有者分配给 xib 检查是否分配了正确的类并且所有插座都已连接并且 ib 插座圈已填满,它会正常工作


推荐阅读