ios - 如何在 SwiftUI 中更改应用程序中的 JSON 文件?
问题描述
我一直在尝试在需要时打开两个不同的 json 文件。但是当我加载第一个然后重置并且老虎选择新的 JSON 时它不会在打开时更改它不会更改为新的 JSON 文件。我尝试使用绑定,但随后在预览结构中出现错误。verify
是另一个绑定变量我有这就是为什么它在预览结构中。
基本上登录屏幕有一个选择器。用户选择他们想要的中心。一旦他们选择了一个中心,它就会第一次映射到所选的 JSON,但是一旦他们注销并选择第二个中心,它就不会将 JSON 文件更改为新的中心
import SwiftUI
var appName: String = "Work Tracker"
var centers = ["Center", "Center1", "Center2"]
var center = ""
struct LoginView: View {
@State private var LoginChecker: Double = 0
@State private var selectedCenter = ""
let verticalPaddingForForm = 40.0
var body: some View {
VStack{
Button(action: {
centerPicker()
print(selectedCenter)
print(center)
}){
if LoginChecker == 0{
Text("Login")
.font(.system(size: 20))
.foregroundColor(Color.init("primaryText"))
.bold()
.frame(width: 120.0, height: 50.0)
.background(Color.init("primaryTextField"))
.cornerRadius(20)
}else if LoginChecker == 1{
VStack(alignment: .center) {
Text("Invalid Login. Please Try Again")
.font(.system(size: 20))
.padding()
.foregroundColor(Color.init("primaryTextField"))
Text("Login")
.font(.system(size: 20))
.foregroundColor(Color.init("primaryText"))
.bold()
.frame(width: 120.0, height: 50.0)
.background(Color.init("primaryTextField"))
.cornerRadius(20)
}
}
}
.font(.system(size: 100))
.padding()
.animation(.easeOut(duration: 0.5))
}
Section{
Picker("Center:", selection: $selectedCenter) {
ForEach(centers, id: \.self) {
Text($0)
}.foregroundColor(Color.init("primaryTextField"))
}
}
.padding(.bottom, -100.0)
.frame(width: 1.0, height: 1.0)
// .foregroundColor(Color.init("primaryTextField"))
// .background(Color.init("primaryTextField"))
}.padding(.horizontal, CGFloat(verticalPaddingForForm))
}
};
struct LoginView_Previews: PreviewProvider {
static var previews: some View {
LoginView(verify: .constant(false))
// .previewLayout(.fixed(width: 1700, height: 1100))
}
}
func centerPicker(){
if selectedCenter == "Center1"{
center = "Center1.json"
appName = "Center1"
}else if selectedCenter == "Center2"{
center = "Center2.json"
appName = "Center2"
}
}
解决方案
推荐阅读
- c++ - 如何根据范围创建名称
- cucumber - 如何让黄瓜阅读场景大纲示例值包含单引号
- flutter - noSuchMethodError elementAt 使用 listView.builder 时
- java - 如何获取和存储geojson的每个属性
- javascript - Why is this selector's projector function returning undefined?
- ruby-on-rails - 使用 bundle exec 运行延迟的作业
- python - How to fix "No such file or directory" occuring at exe using plotly
- javascript - 如何通过组合键值来创建多个数组?
- ansible - 如何修复 Ansible 错误:“冲突的操作语句:包含,文件”
- php - 使用 PHP 使用 LIMIT 调用参数化 MariaDB SP 时出现问题