SwiftUI: 自定义返回按钮

一:NavigationView:实现自定义返回按钮

使用NavigationView,NavigationLink实现导航效果:

struct BackView: View {
    var array = ["1", "2", "33"]
    var body: some View {
        NavigationView {
            List(array, id: \.self) { value in
                NavigationLink(destination: DetailView()) {
                    Text(value)
                }
                .isDetailLink(false)//隐藏自带的返回按钮
            }
           //.navigationBarTitle("Navigation")
           .navigationBarTitle("Navigation",displayMode: .inline)//设置NavView显示模式
        }
    }
}

自定义返回按钮:

struct DetailView: View {
    @Environment(\.presentationMode) var presentationMode

    var body: some View {
        VStack {

        }
        .navigationBarItems(leading: Button(action: {
            print("back action...")
            self.presentationMode.wrappedValue.dismiss()
        }, label: {
            Text("Back")
                .foregroundColor(.white)
        })
        )
    }
}

扩展实现侧滑返回:

//扩展实现侧滑返回
extension UINavigationController: UIGestureRecognizerDelegate {
    override open func viewDidLoad() {
        super.viewDidLoad()
        interactivePopGestureRecognizer?.delegate = self
    }

    public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        return viewControllers.count > 1
    }
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容