添加一个动作来向后滑动 swift 4

2024-03-03

我已将其中一个视图控制器的导航栏中的后退按钮更改为自定义按钮,并为该按钮提供了按下时要执行的操作:

self.navigationItem.hidesBackButton = true
let backButton = UIBarButtonItem(image: UIImage(named: "backArrow"), style: .plain, target: self, action: #selector(self.back))
self.navigationItem.leftBarButtonItem = backButton

这工作得很好,我可以使用以下方法保持向后滑动以弹出视图控制器:

self.interactivePopGestureRecognizer?.isEnabled = true
self.interactivePopGestureRecognizer?.delegate = self

在我的导航控制器文件中。不幸的是,当我向后滑动时,我无法(或者我还没有弄清楚)调用back()我的视图控制器中的函数可以更改后退按钮。如何以及在哪里可以检测到我正在滑动返回,以便我可以调用特定视图控制器中的后退功能?


像这个答案一样,您可以订阅该手势:https://stackoverflow.com/a/36893464/1484378 https://stackoverflow.com/a/36893464/1484378

// In UINavigationController

override func viewDidLoad() {
    super.viewDidLoad()
    self.interactivePopGestureRecognizer?.addTarget(self, action:#selector(self.handlePopGesture))
}

@objc func handlePopGesture(gesture: UIGestureRecognizer) -> Void {
    if gesture.state == .began {
        back()
    }
}

您可能需要添加一些自定义逻辑来访问视图控制器的 back 方法,例如:if let vc = visibleViewController as? MyViewController { vc.back() }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加一个动作来向后滑动 swift 4 的相关文章

随机推荐