我有一个 View Controller ,我需要在其中添加一个自定义后退按钮。所以我添加了一个自定义 backButtonItem
。但是在添加自定义后退按钮后,我的 View Controller 通过滑动返回的默认行为停止按预期工作。
如果我从 View Controller 中删除自定义后退按钮, View Controller 的行为符合预期,但一旦我添加自定义后退按钮,默认行为就会停止。
我已经添加了这样的自定义后退按钮
self.navigationItem.leftBarButtonItem = getCustomBackBarButtonItem(viewController: self)
我曾尝试使用 backBarButtonItem
而不是 leftBarButtonItem
,但这样做后自定义后退按钮不会出现,并且 View Controller 的行为符合预期。
如果我删除上面的代码, View Controller 的行为就如预期的那样,它可以通过滑动顺利返回。
最佳答案
您可以简单地添加以下行,而不是将委托(delegate)设置为自己:
self.navigationController?.interactivePopGestureRecognizer?.delegate = nil
因此它不会转到任何交互式 PopGestureRecognizer 的委托(delegate)方法,并且导航 Controller 的行为将按照您的期望进行。这是实现预期行为的小解决方法。
关于ios - 导航栏的默认返回行为不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47766394/