ToB企服应用市场:ToB评测及商务社交产业平台
标题:
SwiftUI 跳转到新页面(NavigationLink、fullScreenCover、Link)
[打印本页]
作者:
科技颠覆者
时间:
2022-6-25 20:35
标题:
SwiftUI 跳转到新页面(NavigationLink、fullScreenCover、Link)
前言
xcode 13.3
iOS 15.2
复制代码
一、 push跳转
添加跳转时间,首先你要在 NavigationView 中包含的代码,只要在vc的body中,把代码放到 NavigationView 就可以了
1、button 跳转(此处是转化成 Text、Image)
文字button
Button("登录/注册") { //文字
print("登录/注册") //点击事件
}
复制代码
添加跳转事件,YLMySetting是我的要跳转的页面,destination下只要是一个 View就可以跳转,你也可以写一个Text("???")
此处是把纯文字的Button转化为Text再添加的跳转事件
NavigationLink {
YLMySetting() //此处为跳转时间,只要是一个view可以跳转过去
} label: {
Text("登录/注册")
}
复制代码
图片button
此处是把纯图片的Button转化为Image再添加的跳转事件
Button {
print("setting") //点击事件
} label: {
Image("mine_set") //图片
}
复制代码
添加跳转事件
NavigationLink {
YLMySetting()
} label: {
Image("mine_set")
}
复制代码
2、List 中row 点击跳转
这块苹果的官方文档中、demo中都有详细说明
NavigationLink {
YLMySetting()
} label: {
YLMineRow(model: models[index]) //此处为row展示
}
复制代码
3 push 自定义返回
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
复制代码
在Button按钮点击事件或者tap中添加 presentationMode.wrappedValue.dismiss() 返回上一页
var body: some View {
Button(action: {
presentationMode.wrappedValue.dismiss()
}, label: {
Text("返回")
})
}
复制代码
二、presented跳转
1、要跳转的页面设置
给定一个为false的监控值
@State var settingPagePresented: Bool = false
复制代码
给Text添加单击手势,设置监控值跳转
Text("设置")
.fullScreenCover(isPresented: $settingPagePresented, content: {
YLMySetting(settingPagePresented: $settingPagePresented)
}).onTapGesture {
settingPagePresented = true
}
复制代码
2、跳转到的页面
添加绑定状态
@Binding var settingPagePresented: Bool
复制代码
添加返回按钮,点击返回上一页
NavigationView {
Text("hello world")
.navigationTitle("设置")
.navigationBarItems(leading: Button(action: {
settingPagePresented = false
}, label: {
Image("icon_back")
}))
.navigationBarTitleDisplayMode(.inline)
}
复制代码
三、跳转到 Safari 浏览器
使用 Link 可以跳转到 Safari浏览器,不过链接要添加上http,否则跳转不了
Link(destination: URL(string: "https://www.baidu.com")!) {
Text("百度搜索")
}
复制代码
总结
1、跳转方法,必须写在NavigationView 中
2、无论是button还是 Text 或者Image,添加跳转,都要把代码放到label中
3、button点击事件中,没能成功添加跳转事件、此处我都是把button 转化为Text 或者Image,有大佬知道怎么添加,请在评论区留言,非常感谢
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4