出列的可重复使用的单元格总是崩溃

Mar*_*aru 5 model-view-controller contactpicker swift

在这段代码中我添加了编程VC:

@IBAction func addPerson(_ sender: UIBarButtonItem) {
        let controller = CNContactPickerViewController()
        controller.delegate = self
        navigationController?.present(controller, animated: true, completion: nil)
    }
Run Code Online (Sandbox Code Playgroud)

我点击联系人时使用另一个VC(将信息显示在单元格中,然后我想在我的第一个VC中显示电话/电子邮件的复选框)

func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) {
        let vc = EditContactViewController()
        self.navigationController?.pushViewController(vc, animated: true)
Run Code Online (Sandbox Code Playgroud)

我为下一个单元格创建了一个类,当我在tableView cellForRowAtIndexPath中执行此操作时,我在storyboard中将标识符设置为单元格

let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as? ConfigCell

return cell!
Run Code Online (Sandbox Code Playgroud)

这给了我:

fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)

我也试过withIdentifier,forIndexPath,它说:

2016-11-12 01:35:28.626 iEvents3 [2637:47714]***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法使用标识符单元格对单元格出列 - 必须为该单元格注册一个nib或类标识符或连接故事板中的原型单元格'

我删除了重用标识符并将其重新放回,清理了应用程序,重启,一切.

感谢您的时间!

PGD*_*Dev 5

可能有几个原因:

  1. 如果您自己具有UITableViewCellin控制器,则检查重用标识符是否设置为"cell"

  2. 如果您有单独.xibUITableViewCell,则

    a)在viewDidLoad()控制器的表格视图中注册单元格的.nib

    self.tableView.register(UINib(nibName:"CustomTableViewCell"), forCellWithReuseIdentifier: "cell")
    
    Run Code Online (Sandbox Code Playgroud)

    .nib确定已设置的情况outlet下,仅注册table view。否则,如果outletif table view仍然是nil,它将不会注册.nib您的单元格。

    b)检查重用标识符是否设置为"cell"


Saz*_*han 5

确保没有“!” 登录接口插座连接

在此处输入图片说明