Проведите пальцем назад, чтобы уволить дочерний ВК при передаче данных
У меня есть навигационный контроллер, который содержит 1 родительский VC и 1 дочерний VC. Данные передаются между двумя. На родительском виртуальном канале я передаю данные в дочерний виртуальный канал через prepareForSegue. На Child VC обратно в Parent VC я передаю данные с помощью пользовательской кнопки "Назад".
Передача данных туда и обратно прекрасно работает. Тем не менее, я бы хотел, чтобы Child VC можно было сильно ударить, чтобы закрыть, при этом передавая ту же информацию, что и в процессе раскрутки.
Есть ли способ передать данные обратно родителю с помощью пролистывания, наряду с возможностью нажать кнопку возврата назад? Единственный метод жестов, который я использую, - это gestRecognizerShouldBegin, который позволяет перемещать дочерний виртуальный канал вправо.
extension ChildVC: UIGestureRecognizerDelegate {
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
}
Для справки, вот мой отдых:
@IBAction func unwindfromChild(_ sender: UIStoryboardSegue) {
if let CVC = sender.source as? ChildVC {
print("Unwind")
dataReceived() // do stuff with the received data
}
}
2 ответа
Я решил это с немного другим подходом. Я полностью удалил раскручивающийся переход. Передача данных через делегирование. Метод делегата вызывается в navigationController:willShow
,
Вы можете просто прикрепить swipeGestureRecognizer к своему представлению, назвать последовательность раскручивания в Интерфейсном Разработчике, а внутри целевой функции вызвать последовательность раскрутки.