如果我设置一个自定义的返回按钮(每个人都想要,隐藏丑陋的文本;-)并使用.navigationBarBackButtonHidden,那么导航控制器上的标准向后滑动手势将不起作用。有没有办法让它回来,并有一个自定义的后退按钮?
例如:
NavigationView {
NavigationLink(destination: DummyViewer())
{
Text("Go to next view"
}
}
struct DummyViewer: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
Text("Hello, World!").navigationBarBackButtonHidden(true)
.navigationBarItems(leading:
Button(action: { self.presentationMode.wrappedValue.dismiss()}) {
Text("Custom go back")
}
)
}
}
如果我这样做了,我就不能回到之前的视图,似乎手势就被禁用了……如何找回它?
BR Steffen
发布于 2020-02-05 01:31:19
我发现创建一个自定义的NavigationView没有什么效果,但我发现通过扩展UINavigationController
,我能够拥有一个自定义的后退按钮和向后滑动的手势。
extension UINavigationController: UIGestureRecognizerDelegate {
override open func viewDidLoad() {
super.viewDidLoad()
interactivePopGestureRecognizer?.delegate = self
}
public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return viewControllers.count > 1
}
}
发布于 2020-01-28 08:41:55
如果它仍然是实际的,here I answered,如何设置自定义后退按钮和保存向后滑动手势。
https://stackoverflow.com/questions/59234958
复制