7

このコードでは、プログラマティック VC を追加します。

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

ここでは、連絡先をクリックすると別の VC に移動していました (セルに情報を表示し、電話/メールのチェックボックスを作成して、最初の VC に表示するようにしたい)。

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

次のセルのクラスを作成し、tableView cellForRowAtIndexPath でこれを行うときに、ストーリーボードのセルとして識別子を設定しました

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

return cell!

これは私に与えます:

fatal error: unexpectedly found nil while unwrapping an Optional value

私もwithIdentifier、forIndexPathを試してみましたが、次のように書かれています:

2016-11-12 01:35:28.626 iEvents3[2637:47714] *** キャッチされていない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。識別子またはストーリーボードのプロトタイプ セルを接続する」

再利用識別子を削除して元に戻し、アプリケーションをクリーンアップし、再起動します。

お時間をいただきありがとうございます!

4

7 に答える 7

1

その細胞をxibとして持っていますか?セルをテーブル ビューに追加しましたか? このような場合はこれを試してください

@IBOutlet weak var tableView: UITableView!

    override func viewDidLoad() {
self.tableView.register(UINib(nibName: "ConfigCell",bundle: nil), forCellReuseIdentifier: "cell")
}
于 2016-11-11T23:43:07.760 に答える
0

私の場合、それはばかげた間違いで、.xib の名前の単なるミスプリントでしたが、名前が非常に長くて間違いがわかりにくかったため、見つけるのに時間がかかりすぎたので、他のものを探していました。原因。今ではとても明白に思えます..しかし、たわごとが起こります:)

あなたの場合は時間を節約したいと思います。

于 2019-11-14T10:51:31.117 に答える