Проведите пальцем назад, чтобы уволить дочерний ВК при передаче данных

У меня есть навигационный контроллер, который содержит 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 к своему представлению, назвать последовательность раскручивания в Интерфейсном Разработчике, а внутри целевой функции вызвать последовательность раскрутки.

Другие вопросы по тегам