Для этого можно использовать шаблон делегирования .Например, вы можете добавить протокол к классу Note:
protocol FlipDelegate: class {
func willFlip(note: Note)
}
Сделать ViewController соответствующим этому протоколу, сохранить ссылку на последнюю перевернутую карту и снова перевернуть последнюю перевернутую карту:
weak var lastFlippedNote: Note?
func willFlip(_ note: Note) {
lastFlippedNote?. flipToBackView(options: .transitionFlipFromLeft)
lastFlippedNote = note
}
Добавьте слабую ссылку на класс Note, например weak var flipDelegate: FlipDelegate?
, и присвойте viewController ячейке в collectionView(_:cellForItemAt:)
.В ваших действиях смахивания вы можете позвонить willFlip(_:)
, например, когда вы переворачиваете на лицевую сторону заметки, например:
@objc func swipeLeft(swipe: UISwipeGestureRecognizer) {
if isFlipped {
flipToBackView(options: .transitionFlipFromLeft)
}
else {
flipToFrontView(options: .transitionFlipFromLeft)
flipDelegate?.willFlip(note: self)
}
}
@objc func swipeRight(swipe: UISwipeGestureRecognizer) {
if isFlipped {
flipToBackView(options: .transitionFlipFromRight)
}
else {
flipToFrontView(options: .transitionFlipFromRight)
flipDelegate?.willFlip(note: self)
}
}
С уважением