使用SwiftUI
,我希望能够基于一些布尔值来更改NavigationView
上的按钮,该值指示该值应为打开还是关闭。
这与使用UIKit可以替换屏幕两侧的条形按钮项以在单击时显示不同的按钮和相关操作的行为类似。
答案 0 :(得分:1)
我能够通过以下代码使用它,但是我不确定这是否是实现它的最佳方法,因此有待改进。
import SwiftUI
struct HomeList: View {
@State var isOn = true
var body: some View {
NavigationView {
List(1 ..< 4) { index in
Text("Row \(index)")
}
.navigationBarTitle(Text(verbatim: "Title"), displayMode: .inline)
.navigationBarItems(trailing:
Button(action: {
self.isOn = !self.isOn
}, label: {
Text(self.isOn ? "On" : "Off")
})
)
}
}
}
关键在于:
@State
变量上使用isOn
modifier,它告诉我的界面使更改无效并重新呈现Button
动作修改isOn
,如果需要,它还可以支持其他动作Button
标签中的三元运算符会更新Text
(如果需要,也可以更新Image
)以反映正确的外观最后,它的实际效果: