首先我们介绍一下这个APP的功能。
这个APP主要会有的功能如下:
所以以下是这个APP的概念方向
所以首先我们先建立整个基础。
不罗唆先上code。
import SwiftUI
class UserInput: ObservableObject {
@Published var sum:[Int] = [1]
@Published var summ:[String] = ["1"]
}
struct ContentView: View {
@StateObject var input = UserInput()
var body: some View {
NavigationView{
VStack{
NavigationLink(
destination: a1(),
label: {
Text("点进来计算热量")
})
NavigationLink(
destination: b1(),
label: {
Text("点进来计查看今日摄取")
})
}
}
.environmentObject(input)
}
}
struct a1: View {
var a = [100,200]
var b = ["中餐","晚餐"]
@State var karl = 0
@State var category = 0
@State var karlsum = 0
@State var categorysum = "0"
@EnvironmentObject var input: UserInput
var body: some View {
VStack{
Picker(selection: $karl, label: Text("请输入热量")) {
Text("100").tag(0)
Text("200").tag(1)
}
Picker(selection: $category, label: Text("请输入类别")) {
Text("中餐").tag(0)
Text("晚餐").tag(1)
}
Button(action: {
karlsum = 0
karlsum = a[karl]
categorysum = "0"
categorysum = b[category]
input.sum.append(karlsum)
input.summ.append(categorysum)
print(input.sum)
print(input.summ)
}) {
Text("确认")
}
}
}
}
struct b1: View {
@EnvironmentObject var input: UserInput
var body: some View {
Text(String(input.sum[1]))
Text(input.summ[1])
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
a1()
b1()
}
}
接下来我会一个个区块分别细讲。
这边我们要使用昨天教的Passing data。首先用Publish建立两个Array。
这边两个Array分别装的就是纪录进去的热量、类别,这边底下会用到。
这边就是我们的主画面,里面包含两个NavigationLink。
要特别注意的是里面会包含初始化UserInput。最後写上.environmentObject(input)。
这里就来到比较复杂了。首先里面会看到两个Picker、一个Button,我们把要用值放在a、b两个array中。
接着就是两个Piccker包在Vstack里面。
最下面的Button负责运算把选好的值放进sum、summ里。把选好的用a、b叫出来,再分别传送到sum、summ里。这边Print出来的用意是为了电脑上做测试时看的,因为我怕没有加进去array所以把它print出来,这边非必要。
这边我们就用@EnvironmentObject把sum、summ去调用出来,在下方显示出来就可以了!
<<: 学习Python纪录Day13 - Web API、JSON
通常分析 Event Correlation事件相关性,商业分析师 BA(Business Anal...
今天第三天要登场的是插入排序法(Insertion Sort),我自己在玩扑克牌的时候,都是使用这种...
这几天到处问别人「怎样算好PM?」 我的前同事告诉我公司有标准答案: MS leadership p...
文件:专案工作手册(维基)、专案文件 开会 电话、座位即时确认 ...
今天开始来把这个我第一个网站写成vue版本 https://sweetyue9045.github....