Вы передаете данные, которые не являются правильным способом сделать это. Вы никогда не должны получать доступ к представлению, пока оно не было показано или загружено правильно.
В вашем class EventDetailController
добавьте свойство
var event: Event?
и замените этот метод, как показано ниже
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let vc = EventDetailController()
vc.event = model.events[indexPath.item]
navigationController?.pushViewController(vc, animated: true)
}
и
override func viewDidLoad() {
super.viewDidLoad()
eventDetailView.event = self.event
}
Надеюсь, это поможет
EDIT
В методе просмотра нагрузки добавьте следующую строку в начале метода
`eventDetailView = EventDetailView(frame:CGRect(x:0,y:0,width:UIScreen.main.bounds.width,height:UIScreen.main.bounds.height))`