NavigationLinks 正在分组
NavigationLinks are being grouped
我有一个餐厅菜单应用程序,它在菜单的各个部分内对菜单项进行分组,每个菜单项上都有 NavigationLinks,旨在显示该项目的更详细描述。一个部分中的所有菜单项都被组合在一起,就好像它们只是一个 link 并触发错误“致命错误:UIKitNavigationBridge:多个活动目的地:文件 SwiftUI”。换句话说,当您单击任何单个项目时,它会尝试显示该部分中所有项目的详细信息。
我正在使用显示各个部分的剖面视图执行此操作,每个部分依次显示该部分中的项目。
这似乎是 SwiftUI 中的一个错误,但由于我对 SwiftUI 比较陌生,所以我想我应该寻求更多经验丰富的建议。
import SwiftUI
struct MenuSectionView: View
{
@Environment(\.managedObjectContext) var managedObjectContext
@EnvironmentObject var env: GlobalEnvironment
var group: Group
var items: [MenuItem]
init(group: Group)
{
self.group = group
items = getMenuItems(businessid: group.businessid!, groupid: group.groupid)
}
var body: some View
{
VStack
{
ForEach (items, id: \.itemid)
{
itemx in
if group.groupid == itemx.groupid
{
MenuItemView(item: itemx)
}
}
}
}
}
import SwiftUI
import CoreData
struct MenuItemView: View
{
@Environment(\.managedObjectContext) var context
@EnvironmentObject var env: GlobalEnvironment
var item: MenuItem
init(item: MenuItem)
{
self.item = item
}
var body: some View
{
return VStack
{
NavigationLink(destination: DetailView(item: item))
{
VStack
{
HStack
{
if let image = item.image
{
Image(uiImage: UIImage(data: image)!).resizable().frame(width: 40, height: 40).cornerRadius(5)
} else
{
Image(item.name!).resizable().frame(width: 40, height: 40).cornerRadius(5)
}
Text(item.name!)
}
Text(item.desc!)
}
}
}
}
}
}
显然,上述示例中的 VStack 是 error/bug 的原因。我删除了它,现在链接可以正常工作了。它仍然是一个错误,因为在更复杂的迭代中,需要 VStack。我发现堆栈中的按钮也会发生同样的事情。
我有一个餐厅菜单应用程序,它在菜单的各个部分内对菜单项进行分组,每个菜单项上都有 NavigationLinks,旨在显示该项目的更详细描述。一个部分中的所有菜单项都被组合在一起,就好像它们只是一个 link 并触发错误“致命错误:UIKitNavigationBridge:多个活动目的地:文件 SwiftUI”。换句话说,当您单击任何单个项目时,它会尝试显示该部分中所有项目的详细信息。
我正在使用显示各个部分的剖面视图执行此操作,每个部分依次显示该部分中的项目。
这似乎是 SwiftUI 中的一个错误,但由于我对 SwiftUI 比较陌生,所以我想我应该寻求更多经验丰富的建议。
import SwiftUI
struct MenuSectionView: View
{
@Environment(\.managedObjectContext) var managedObjectContext
@EnvironmentObject var env: GlobalEnvironment
var group: Group
var items: [MenuItem]
init(group: Group)
{
self.group = group
items = getMenuItems(businessid: group.businessid!, groupid: group.groupid)
}
var body: some View
{
VStack
{
ForEach (items, id: \.itemid)
{
itemx in
if group.groupid == itemx.groupid
{
MenuItemView(item: itemx)
}
}
}
}
}
import SwiftUI
import CoreData
struct MenuItemView: View
{
@Environment(\.managedObjectContext) var context
@EnvironmentObject var env: GlobalEnvironment
var item: MenuItem
init(item: MenuItem)
{
self.item = item
}
var body: some View
{
return VStack
{
NavigationLink(destination: DetailView(item: item))
{
VStack
{
HStack
{
if let image = item.image
{
Image(uiImage: UIImage(data: image)!).resizable().frame(width: 40, height: 40).cornerRadius(5)
} else
{
Image(item.name!).resizable().frame(width: 40, height: 40).cornerRadius(5)
}
Text(item.name!)
}
Text(item.desc!)
}
}
}
}
}
}
显然,上述示例中的 VStack 是 error/bug 的原因。我删除了它,现在链接可以正常工作了。它仍然是一个错误,因为在更复杂的迭代中,需要 VStack。我发现堆栈中的按钮也会发生同样的事情。