В настоящее время я изучаю Swift и пытаюсь выполнить segue, когда пользователь нажимает на одну из ячеек таблицы, которую представляет приложение. В настоящий момент, когда пользователь выполняет это действие, следующий контроллер представления загружается успешно, но кажется, что по какой-то причине я не могу получить доступ к каким-либо элементам пользовательского интерфейса, поскольку каждый раз, когда я пытаюсь это сделать, я в конечном итоге получаю эту ошибку:Проблема при выполнении segue на ячейке tableview
фатальная ошибка: неожиданно нашли ноль в то время как разворачивание необязательное значение
точки ошибки в строке, в которой я пытаюсь изменить текст одной из меток, которые отображаются на следующий контроллер вида
Это didSelectRowAt функция:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
self.performSegue(withIdentifier: "segue1", sender: self)
}
и это prepareForSegue функция:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "segue1" {
let destinationVC = segue.destination as! UserViewController
let selectedRow = tableView.indexPathForSelectedRow!
let selectedCell = tableView.cellForRow(at: selectedRow) as! CustomCell
destinationVC.usernameLabel.text = selectedCell.userName.text //this is where the error is pointing to
destinationVC.bioLabel.text = selectedCell.bio.text
destinationVC.userImage.image = selectedCell.photo.image
}
}
Я понятия не имею о том, что является причиной этой проблемы. Моя цель - передать данные из подключенной ячейки в следующий контроллер представления, но это, очевидно, мешает мне это сделать. Кто-нибудь знает, как я могу это исправить? Заранее спасибо.
Hi, Mike. Используете ли вы статичные или динамические ячейки 'UITableView'? –
Я использую динамические ячейки. –
@Mike Vaugh, используйте 'destinationVC.usernameLabel.text = selectedCell.userName.text ?? "" – aircraft