在传递数据时向后滑动以关闭子项 VC
Swiping back to dismiss a child VC while passing data
我有一个包含 1 个父项 VC 和 1 个子项 VC 的导航控制器。数据在两者之间传递。在 Parent VC 上,我通过 prepareForSegue 将数据传递给 Child VC。在子 VC 返回父 VC 时,我正在通过自定义后退按钮展开转场传递数据。
来回传递数据效果很好。但是,我希望 Child VC 能够向右滑动以关闭,同时仍然传递与展开 segue 中相同的信息。
有没有办法使用滑动将数据传回父级,同时能够按下后退按钮展开?我使用的唯一手势方法是gestureRecognizerShouldBegin,它允许 Child 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
}
}
您可以简单地附加一个 swipeGestureRecognizer to your view, name the unwind segue in Interface Builder, and inside the target function trigger the unwind segue。
我用稍微不同的方法解决了这个问题。我完全删除了 unwind segue。通过委托传递数据。在navigationController:willShow
.
中调用委托方法
我有一个包含 1 个父项 VC 和 1 个子项 VC 的导航控制器。数据在两者之间传递。在 Parent VC 上,我通过 prepareForSegue 将数据传递给 Child VC。在子 VC 返回父 VC 时,我正在通过自定义后退按钮展开转场传递数据。
来回传递数据效果很好。但是,我希望 Child VC 能够向右滑动以关闭,同时仍然传递与展开 segue 中相同的信息。
有没有办法使用滑动将数据传回父级,同时能够按下后退按钮展开?我使用的唯一手势方法是gestureRecognizerShouldBegin,它允许 Child 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
}
}
您可以简单地附加一个 swipeGestureRecognizer to your view, name the unwind segue in Interface Builder, and inside the target function trigger the unwind segue。
我用稍微不同的方法解决了这个问题。我完全删除了 unwind segue。通过委托传递数据。在navigationController:willShow
.