NavigationView 基础用法

2021-06-11  本文已影响0人  fanren

一、介绍

在Swift中,我们使用了UINavigationController来控制界面的路由
在SwiftUI中,我们使用NavigationView来控制界面的跳转;

二、代码

struct FirstView: View {
    var body: some View {
        NavigationView(content: {
            Text("首页")
            .navigationBarTitle("第一个", displayMode: .inline)
        })
    }
}
结果
struct FirstView: View {
    // 在init方法中,使用swift方法,设置
    init() {
        UINavigationBar.appearance().backgroundColor = .white
        UINavigationBar.appearance().tintColor = .black
        UINavigationBar.appearance().barTintColor = .black
        UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.red]
        UINavigationBar.appearance().largeTitleTextAttributes = [.foregroundColor: UIColor.red]
    }
    
    var body: some View {
        NavigationView(content: {
            Text("首页")
            .navigationBarTitle("第一个", displayMode: .inline)
        })
    }
}
效果图
struct FirstView: View {
    
    var body: some View {
        NavigationView(content: {
            Text("首页")
            .navigationBarTitle("第一个", displayMode: .inline)
            .navigationBarItems(leading: Text("左边"), trailing: Text("右边"))
        })
    }
}
截图
struct FirstView: View {
    
    var body: some View {
        NavigationView(content: {
            NavigationLink(
                destination: SecondView(),
                label: {
                    Text("跳转下一页面")
                })
            .navigationBarTitle("第一个", displayMode: .inline)
        })
    }
}
struct SecondView: View {
    
    @Environment(\.presentationMode) var presentationMode
    
    var body: some View {
        Button(action: {
            presentationMode.wrappedValue.dismiss()
        }, label: {
            Text("返回")
        })
        .navigationBarTitle("第二个", displayMode: .inline)
    }
}

四、demo

示例代码

上一篇 下一篇

猜你喜欢

热点阅读