В виде таблицы отображается пустой - PullRequest
0 голосов
/ 16 июня 2020

Я в основном хочу создать собственное представление и добавить в него табличное представление. Я могу сделать это успешно, и табличное представление также отображается правильно, когда я запускаю код. Но tablview отображается пустым, несмотря на регистрацию настраиваемой ячейки tablview в viewDidLoad. Это настраиваемая ячейка tableview, которую я разработал для загрузки в tablview.

Созданный мной файл .swift пользовательского класса представления выглядит так ... 1007 *

В viewDidLoad,

   standardsProceduresView.delegate = self
    standardsProceduresView.dataSource = self



   standardsProceduresView.registerClass(cellClass: UpdatingListTableViewCell.self, forCellReuseIdentifier: "cellClass")

И далее,

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: UpdatingListTableViewCell = self.standardsProceduresView.dequeueReusableCellWithIdentifier(identifier: "cellClass") as! UpdatingListTableViewCell

    cell.nameLbl.text = "MyName" //But here I get a crash saying 'Unexpectedly found nil while implicitly unwrapping an Optional value'
    return cell

}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 10
}

Ответы [ 2 ]

0 голосов
/ 16 июня 2020

Проблема заключалась в том, что я не зарегистрировал перо ...

Вместо этого ...

func registerClass(cellClass: AnyClass?, forCellReuseIdentifier identifier: String) {
        tableview.register(cellClass, forCellReuseIdentifier: "cellClass")
    }

Мне пришлось написать это ...

func registerClass(cellClass: AnyClass?, forCellReuseIdentifier identifier: String) {

        let nib = UINib(nibName: "UpdatingListTableViewCell", bundle: nil)

        tableview.register(nib, forCellReuseIdentifier: "cellClass")
    }
0 голосов
/ 16 июня 2020

Этот хрен sh говорит вам, что что-то не так с исключением ячеек из очереди или приведением этой ячейки к данному классу. Возможно, сделайте это один за другим и добавьте точку останова (или напечатайте), чтобы увидеть, каков результат удаления из очереди перед приведением:

let cell = self.standardsProceduresView.dequeueReusableCellWithIdentifier(identifier: "cellClass")
print(cell)
let updatingCell = cell as! UpdatingListTableViewCell

Я также вижу, что вы устанавливаете dataSource перед регистрацией класс, который может привести к проблемам. Попробуйте сначала зарегистрировать класс, прежде чем устанавливать dataSource.

...