dushihao / SwiftUI_Pokemon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SwiftUI-pokemon

数据状态和绑定练习

1、使用@State控制Alert弹窗

editingHistory 一样,添加额外的属性,控制 Alert 弹窗 , 当用户点击Alert弹窗关闭时,SwiftUI会通过self.showResult 这个 binding 把值设置为 false。

Text(model.brain.output)
     .font(.system(size:76))
     .minimumScaleFactor(0.5)
     .padding(.trailing, 24)
     .frame(minWidth: 0, maxWidth: .infinity, alignment: .trailing)
     .alert(isPresented: $showResult) {
             Alert(title: Text("hello"), message: Text(model.historyDetail + "\n" + model.brain.output), dismissButton: .default(Text("OK")))
     }.onTapGesture {
             self.showResult = true
             print("WTF! you touched me!")
     }

2、关闭回溯界面

同练习1类似,将editingHistory 这个binding 赋值给 HistoryView ,通过修改属性值,实现dismiss model。

3、修正计算器模型中的 bug

我在枚举 CalculatorBrain 多添加了一种状态:结果值状态,也就是用户输入了等号的状态。(:P但是感觉应该有更好的办法啊)

enum CalculatorBrain {
    case left(String)
    case leftOp(left: String, op: CalculatorButtonItem.Op)
    case leftOpRight(left: String, op: CalculatorButtonItem.Op, right: String)
    case equal(String)
    case error
   
   // ...
   }

About


Languages

Language:Swift 100.0%