Повторное использование табличной ячейки в представлении статической таблицы - iOS - Swift - PullRequest
0 голосов
/ 26 апреля 2019

Я новичок и быстро учусь

Я хочу использовать статические ячейки в моем табличном представлении. Я имею в виду, что все ячейки выглядят одинаково, поэтому я подумал об использовании xib для tablecell и использую это в моем статическом табличном представлении.

Проблема, с которой я сталкиваюсь в настоящее время, заключается в том, что при попытке получить доступ к метке, которая у меня есть в xib, возникает ошибка в методе: ConfigureCell в приведенном ниже коде. Поток 1. Неустранимая ошибка: неожиданно обнаружен ноль при неявном развертывании необязательного значения Почему это говорит, что я распаковываю необязательно, когда у меня нет одного

Не уверен, что здесь нужно сделать / Пожалуйста, совет.

ниже мой код:

class NewTableViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

       self.tableView.register(ReusableTableViewCell.self, forCellReuseIdentifier:"custom")
    }

    // MARK: - Table view data source

    override func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return 4
    }


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "custom", for: indexPath) as? ReusableTableViewCell else {
            return UITableViewCell()
        }
        if indexPath.row == 0 {
            cell.configureCell(title: "Name", detail: "hello")
        }
        if indexPath.row == 2 {
            cell.configureCell(title: "Age", detail: "23")
        }
        if indexPath.row == 3 {
            cell.configureCell(title: "Dept", detail: "HR")
        }
        return cell
    }
}

class ReusableTableViewCell: UITableViewCell {

@IBOutlet weak var leftLabel: UILabel!
@IBOutlet weak var rightLabel: UILabel!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

func configureCell(title: String, detail: String) {

    leftLabel.text = title //Error Here: Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

    rightLabel.text = detail

}

} enter image description here

1 Ответ

0 голосов
/ 26 апреля 2019

Нашел решение для этого.Проблема связана со строкой self.tableView.register (ReusableTableViewCell.self, forCellReuseIdentifier: "custom")

Замена этого на tableView.register (UINib (nibName: "ReusableTableViewCell", bundle: nil), forCellReuseIdentifier:") решил проблему

Спасибо

...