我在NavigationLink
内有一个Form
(截图1)。当我单击时,导航将转到详细信息页面(屏幕截图2)。当我使用“后退”按钮或滑动手势返回时,NavigationLink
变为突出显示状态(屏幕截图3)。
请参阅下面的代码。
如何解决此问题? 谢谢。
首页(第一个导航链接所在的位置):
NavigationView {
// Content
VStack {
// Navigation to profileview
NavigationLink(destination: ProfileView(showing: self.$profileClicked).environmentObject(self.user),
isActive: self.$profileClicked) {}
}
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {self.profileClicked.toggle()}) {
Image(systemName: "person.circle.fill")
}
}
}
}
个人资料视图(屏幕截图1):
VStack {
// ...
List {
Section {
NavigationLink(destination: AccountInfoView().environmentObject(self.user)) {
HStack {
Image(systemName: "person.fill")
.foregroundColor(Color("main"))
Text("Account information")
}
}
}
}
Spacer()
// ...
}
.navigationTitle("Profile")
}
帐户查看(第二张屏幕截图)
var body: some View {
VStack {
Form {
HStack {
Text("ID:")
.padding(8)
Spacer()
Text(self.user.id)
.foregroundColor(Color.gray)
.font(.system(size: 13))
.lineLimit(1)
}
HStack {
Text("Email:")
.padding(8)
Spacer()
Text(self.user.email)
.foregroundColor(Color.gray)
.lineLimit(1)
}
}
}
.navigationTitle("Account")
}
答案 0 :(得分:0)
只需在.onAppear
上添加List
并将selectionStyle
设置为none
List{}.onAppear {
UITableViewCell.appearance().selectionStyle = .none
}
确保将所有内容包装在NavigationView
答案 1 :(得分:0)
我们观察到相同的问题。如果将列表添加到VStack中,则无法取消突出显示单元格。
以下代码段无法在iOS 14上运行。
UITableViewCell.appearance().selectionStyle = .none
我们能够修复它的方法是使用LazyVStack。
我们从层次结构VStack->List
迁移到VStack->ScrollView->LazyVStack->ForEach