实战教程·元宇宙来了,准备好你的电子名片了吗?(四)(2)

简介: 实战教程·元宇宙来了,准备好你的电子名片了吗?(四)

界面设计:自定义返回按钮

来到HomePageView视图,和ContentView和NewView一样,我们给这个页面创建顶部导航菜单,而导航栏的标题,我们可以声明一个变量,将ContentView的平台名称变量传值过来,如下代码所示:

struct HomePageView: View {
    var platformName: String
    var body: some View {
        NavigationStack {
            Text("HomePageView")
            .navigationBarTitle(platformName, displayMode: .inline)
        }
    }
}

image.png

声明变量后,我们还要回到ContentView给使用到HomePageView中声明的变量绑定默认值,实现从ContentView视图传值到HomePageView视图中,如下代码所示:

HomePageView(platformName:item.platformName)

image.png

在HomePageView视图中,我们看到由于使用NavigationLink跳转返回,因此在跳转后的页面会自带返回按钮。

但这个返回按钮没那么好看,我们可以隐藏原来系统自带的返回按钮,然后自己自定义一个返回按钮并实现返回操作,如下代码所示:


struct HomePageView: View {
    var platformName: String
    @Environment(.presentationMode) var presentationMode
    var body: some View {
        NavigationStack {
            Text("HomePageView")
            .navigationBarTitle(platformName, displayMode: .inline)
            .navigationBarBackButtonHidden(true)
            .navigationBarItems(leading: backBtn())
        }
    }
    // 返回按钮
    func backBtn() -> some View {
        Button(action: {
            self.presentationMode.wrappedValue.dismiss()
        }) {
            Image(systemName: "chevron.backward")
                .font(.system(size: 17))
                .foregroundColor(.black)
        }
    }
}

image.png

上述代码中,我们创建了一个返回按钮视图backBtn,并使用环境变量presentationMode实现其出栈返回上一页方法。

导航菜单部分,使用navigationBarBackButtonHidden隐藏导航菜单返回按钮修饰符隐藏NavigationLink自带的返回按钮,并使用navigationBarItems导航菜单按钮元素修饰符将backBtn返回按钮视图加到导航菜单上。


相关文章
|
存储 JSON 缓存
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(1)
实战教程·元宇宙来了,准备好你的电子名片了吗?
94 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(1)
|
存储 安全 容器
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(5)
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)
74 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(5)
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(3)
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)
47 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(3)
|
存储 JSON 测试技术
实战教程·元宇宙来了,准备好你的电子名片了吗?(五)(2)
实战教程·元宇宙来了,准备好你的电子名片了吗?(五)
63 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(五)(2)
|
数据库
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(4)
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)
63 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(4)
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(5)
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)
59 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(5)
|
存储 数据库 Swift
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(3)
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)
80 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(3)
|
存储 前端开发 数据库
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(6)
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)
70 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(八)(6)
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)(2)
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)
71 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(六)(2)
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(1)
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)
57 0
实战教程·元宇宙来了,准备好你的电子名片了吗?(七)(1)