添加一个动作以快速向后滑动 4
Posted
技术标签:
【中文标题】添加一个动作以快速向后滑动 4【英文标题】:Adding an action to back swipes swift 4 【发布时间】:2019-01-07 22:11:04 【问题描述】:我已将其中一个视图控制器中导航栏中的后退按钮更改为自定义按钮,并在按下该按钮时为该按钮提供了一个操作:
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()
函数来更改后退按钮。我如何以及在哪里检测到我正在滑动以返回,以便我可以调用该特定视图控制器中的后退函数?
【问题讨论】:
【参考方案1】:喜欢这个答案你可以订阅手势:https://***.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()
您可能需要添加一些自定义逻辑来访问视图控制器的返回方法,例如:if let vc = visibleViewController as? MyViewController vc.back()
【讨论】:
快乐是我的。以上是关于添加一个动作以快速向后滑动 4的主要内容,如果未能解决你的问题,请参考以下文章
通过向后滑动关闭 UISwipeActionsConfiguration