我有一个导航控制器,其中包含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
}
}
答案 0 :(得分:0)
您可以简单地将swipeGestureRecognizer附加到视图,在Interface Builder中以及目标函数trigger the unwind segue内命名展开序列。
答案 1 :(得分:0)
我用稍微不同的方法解决了这个问题。我完全取消了放松的时间。通过委托传递数据。在navigationController:willShow
中调用了委托方法。