【发布时间】:2021-04-01 07:42:21
【问题描述】:
我在 SwiftUI 中有一系列视图。一种是“菜单视图”,它由 NavigationLinks 的 List 组成,包裹在 NavigationView 中。
代码如下。
var body: some View {
NavigationView {
List {
HStack {
NavigationLink(destination: History(), isActive: $isHistoryViewActive) {
Image(systemName: "clock")
Text("History")
}
}
HStack {
NavigationLink(destination: Settings(), isActive: $isSettingsActive) {
Image(systemName: "gear")
Text("Settings")
}
}
HStack {
Image(systemName: "info.circle.fill")
Button(action: {
...
}) {
Text("My Button")
}
}
}
}
}
设置视图如下
var body: some View {
List {
...
Section(header: "Background Music") {
Toggle("Play", isOn: $isBackGroundMusicOn)
}
Section(header: "Voice Setting") {
HStack {
NavigationLink(destination: VoiceList() {
Text(self.voiceNames[self.selectedVoice])
}
}
}
}
最后,VoiceList 视图如下:
var body: some View {
List {
ForEach(0 ..< VoiceList.voiceNames.count) {voiceIndex in
HStack {
Button(action: {
voiceChanged(selectedVoice: voiceIndex)
}){
Text(VoiceList.voiceNames[voiceIndex])
}
Spacer()
Image(systemName: "checkmark")
.frame(alignment: .trailing)
.foregroundColor(.blue)
.isHidden(hidden: voiceIndex != selectedVoice)
}
}
}
}
我遇到的问题是,当应用从 VoiceList 视图返回到 Settings 视图时,NavigationLink 仍然突出显示,好像它仍然处于活动状态,如随附的屏幕截图所示。老实说,我不知道是什么原因造成的。非常感谢任何想法或见解。
【问题讨论】:
标签: ios swiftui swiftui-list swiftui-navigationlink swiftui-navigationview