Проблема в том, что вы не передаете его здесь
performSegue(withIdentifier: "toDetails", sender: self)
вы создаете desVC
без толчка и используете переход, также не делайте
let imageData: NSData = NSData(contentsOf: imageUrl)!
, поскольку он блокирует основной поток, я рекомендую отправить URL-адрес изображения и загрузить его туда, например, с помощью SDWebImage
//
Сначала уточним, что у вас есть 2 вариантасначала создайте desVC, как вы это сделали, и начните его с отправленных параметров, затем нажмите self.navigationController
ИЛИ использовать segue Когда вы используете segues и хотите отправить данные в целевую реализацию prepare(for segue
, поэтому рефакторинг к
1-
performSegue(withIdentifier: "toDetails", sender: imageURLString )
2-
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toDetails" {
let nextScene = segue.destination as? MainDetailViewController {
nextScene.imageURLString = sennder as! String
nextScene.sendedTitle = self.sendedTitle
}
}
}
3- Не получать доступ к элементам пользовательского интерфейса до того, как будет представлен destinationVC