在我看来,我有一个列表,其中最后一项是切换按钮,并且文本在水平堆栈中。我想在文本的某些部分添加操作(此文本类似于条款和隐私政策)。但是在添加NavigationLink移至其他屏幕时,它添加了显示指示器,其文本和指示器之间的空间较大,并且单击在整个行上起作用。在swiftUI中还有其他选项可以推送到其他屏幕吗?我目前正在使用Xcode 11.1
var body: some View {
NavigationView {
List {
NavigationLink(destination: TestView()) {
Text("Test")
}
}
}
}
以下是它在NavigationLink中的显示方式的屏幕截图:
答案 0 :(得分:1)
您也可以使用Button
。这是我用来使其工作的代码。我还添加了一个图像,该图像在用户返回列表时会更改。
struct ContentView: View {
@State var showTestView = false
@State var imageName = "heart"
var body: some View {
List {
HStack{
Image(systemName: imageName)
Button(action: {
self.showTestView.toggle()
}) {
Text("Test")
}
.sheet(isPresented: self.$showTestView) { TestView(showTestView: self.$showTestView, imageName: self.$imageName) }
}
}
}
}
struct TestView: View {
@Binding var showTestView: Bool
@Binding var imageName: String
var body: some View {
VStack{
Button(action: {
self.imageName = "heart.fill"
self.showTestView.toggle()
}) {
Text("Cancel")
}
}
}
}
呈现TestView
时的效果与使用NavigationLink
稍有不同,但它很有用且有效。