【发布时间】:2019-09-09 16:03:04
【问题描述】:
我不能在 List 的同一行中使用多个 NavigationLink。
看起来导航堆栈完全搞砸了,因为您点击一次,它会进入多个视图,然后不规律地返回......
在 TestList 中,我尝试在 Sections 中添加单独的 NavigationLinks,并尝试将 NavigationLinks 移动到视图层次结构中的两个不同位置...
我尝试为列表的每一行添加两个 NavigationView,但是 那么当我需要它时,navigationTitleBar 就不会消失..
struct ContentView: View {
var body: some View {
NavigationView {
TestList()
}
}
}
struct TestList: View {
var body: some View {
List {
ListCellView()
}
}
}
struct ListCellView: View {
var body: some View {
VStack {
Spacer()
NavigationLink(destination: TestDestination1()) {
Text("Test Destination 1")
.frame(width: 140, height: 50)
.background(RoundedRectangle(cornerRadius: 7.0).strokeBorder(Color.green, lineWidth: 3.0))
}
Spacer()
NavigationLink(destination: TestDestination2()) {
Text("Test Destination 2")
.frame(width:140, height: 50)
.background(RoundedRectangle(cornerRadius: 7.0).strokeBorder(Color.purple, lineWidth: 3.0))
Spacer()
}
}
}
}
struct TestDestination1: View {
var body: some View {
Text("Test Destination 1")
}
}
struct TestDestination2: View {
var body: some View {
Text("Test Destination 2")
}
}
我希望当您点击 NavigationLink 时,它会导航到目标视图。
当两个 NavigationLinks 在 List 的同一行中并且您点击它时,会发生什么情况: 1. 转到其中一个视图 2.点击“返回”后,它会带你回到视图,然后带你到另一个目标视图。
【问题讨论】:
-
这似乎是 SwiftUI 中的一种模式,如果你坚持默认设置,事情会很好,但如果你做了一些意想不到的事情,事情会很快变得非常混乱。如果有可能将两个
NavigationLinks 分成两个列表项,我会这样做。 -
导航栈没有问题。你想达到什么样的行为?您不会期望在 UITableView 中点击一个单元格来同时导航到两个不同的视图,对吗?
-
@LuLuGaGa 这是一个很好的观点......我试图在列表行中有多个视图。我会尝试像@Benjamin\ Kindle 建议的那样拆分它。
-
@BenjaminKindle 是的,我认为这是可能的。这可能是解决方案。
标签: swiftui