传递数据时回扫以关闭子VC

时间:2018-10-08 22:11:52

标签: swift uinavigationcontroller segue unwind-segue

我有一个导航控制器,其中包含1个父VC和1个子VC。数据在两者之间传递。在父VC上,我正在通过prepareForSegue将数据传递给子VC。在“子VC”回到“父VC”上,我正在通过自定义“后退”按钮展开数据传递数据。

来回传递数据效果很好。但是,我希望Child VC能够向右滑动以将其关闭,同时仍传递与取消序列中相同的信息。

有没有一种方法可以通过滑动将数据传回父级,并能够按下后退按钮?我唯一使用的手势方法是gestureRecognizerShouldBegin,它允许子VC向右滑动。

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 个答案:

答案 0 :(得分:0)

您可以简单地将swipeGestureRecognizer附加到视图,在Interface Builder中以及目标函数trigger the unwind segue内命名展开序列。

答案 1 :(得分:0)

我用稍微不同的方法解决了这个问题。我完全取消了放松的时间。通过委托传递数据。在navigationController:willShow中调用了委托方法。