У меня есть UICollectionView и вы хотите перейти к DetailView, нажав кнопку custom. Мне нужно передать данные.Данные Swift/pass от UICollectionView до DetailView/Пользовательская кнопка
Кнопка является частью многоразовой ячейки.
Я получаю SIGABRT (по адресу let indexPath = sender as! NSIndexPath
) со следующим кодом.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let indexPath = sender as! NSIndexPath
if segue.identifier == "showDetailasDetail" {
let vc = segue.destinationViewController as! InfoPopupVC
vc .currentEvent = posts[indexPath.row]
}
Если я выполняю SEGUE без let indexPath = sender as! NSIndexPath
и vc .currentEvent = posts[indexPath.row]
, у меня нет каких-либо проблем (но не передается никаких данных ...)
Помощь очень ценится.
DestinationViewController:
class InfoPopupVC: UIViewController {
var currentEvent: EventPosts?
@IBOutlet weak var infoPopupTitleLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let title = currentEvent?.title
infoPopupTitleLabel.text = title
}
}
EventPosts Struct:
struct EventPosts {
var title = ""
var imageUrl = ""
var url = ""
var date = ""
}
Вы также можете отправить код, вызывающий этот метод? – Ollie
Нет кода. Я просто добавил кнопку в ячейку и поместил строку из кнопки в новое представление и дал segue имя «showDetailasDetail» –
Хорошо, это потому, что 'sender' является кнопкой, а не' NSIndexPath' кнопки в 'UICollectionView'. Я отправлю ответ с предложениями ниже. – Ollie