Пользовательские IBOutlets UITableCell «ломаются» (объекты становятся нулевыми) во время выполнения для UITableCell, используемых для отображения в контроллере поиска - PullRequest
0 голосов
/ 07 января 2019

Мой контроллер основного представления (UITableViewController) будет иметь панель поиска, которая при нажатии вызывает контроллер поиска (также UITableViewController), который будет рисовать ячейки, идентичные основному. Мой метод tableview.cellfor был сбит с толку с удалением моей пользовательской ячейки (даже если идентификаторы были установлены правильно, а объекты построителя интерфейса имеют правильный класс), поэтому я использовал метод tableview.register для регистрации своих ячеек (даже если ячейки практически идентичны тем, что есть в контроллере основного вида, я сделал их другим классом и преобразовал их в конструкторе интерфейсов). Теперь я получаю сообщение об ошибке, что IBOutlets, которые я сделал в моих swift-файлах для ячеек табличного представления контроллера поиска, повреждены, и мои элементы ячеек установлены в ноль, любая помощь с этим? Вот код UITableViewCell для поисковых ячеек

class SearchBeerTableViewCell: UITableViewCell {

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}
@IBOutlet weak var beerNameLabel: UILabel!
@IBOutlet weak var beerDescriptionLabel: UILabel!

@IBOutlet weak var selectBeerButton: UIButton!

@IBAction func selectBeerButtonTapped(sender: UIButton) {
    print("Button pressed")
}

func update (with beer: Beer) {
    self.beerNameLabel.text = beer.name
    self.beerNameLabel.adjustsFontSizeToFitWidth = true
    self.beerDescriptionLabel.text = beer.toString()
}
}

и вот ячейка метода контроллера поиска для строки в

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    print("Am ajuns pana aici")
    guard let cell = tableView.dequeueReusableCell(withIdentifier: "searchBeerCell", for: indexPath) as? SearchBeerTableViewCell  else {
        fatalError("Could not dequeue cell!")
    }
    cell.update(with: beers[indexPath.row])
    cell.selectBeerButton.tag = indexPath.item

    // Configure the cell...

    return cell
}

Строка для регистрации ячейки была такой

self.tableView.register (SearchBeerTableViewCell.self, forCellReuseIdentifier: "searchBeerCell")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...