Пытаясь загрузить представление в цикле, используя Navlink, но когда я нажимаю на этикетку, он просто идет на черный экран на несколько секунд и возвращается к корневому представлению. Код компилизируется нормальным в предварительном просмотре, и нет кодов ошибок. Когда я запускаю симулятор, я получаю это сообщение в отладчике: < /p>
Навигационная связь представляет значение типа «миссии», но не существует совпадающего объявления о навигации, видно из расположения ссылки. Ссылка не может быть активирована. Код: < /p>
struct ContentView: View {
@State private var gridList = true
let missions = MissionC()
let layout = [
GridItem(.adaptive(minimum: 150))
]
var body: some View {
NavigationStack {
Group {
if gridList {
ScrollView {
LazyVGrid(columns: layout) {
ForEach(missions.missionItem) { mission in
NavigationLink(value: mission) {
NavLink(mission: mission)
}
}
}
.navigationDestination(for: Missions.self) { mission in
MissionDetails(missions: mission)
}
.padding([.horizontal, .bottom])
}
} else {
List {
ForEach(missions.missionItem) {mission in
NavigationLink(value: mission) {
NavLink2(mission: mission)
}
}
.listRowBackground(Color.lightBackground)
}
.navigationDestination(for: Missions.self) { mission in
MissionDetails(missions: mission)
}
.scrollContentBackground(.hidden)
}
}
.navigationTitle("Moonshot")
.background(.darkBackground)
.preferredColorScheme(.dark)
.toolbar {
Button(gridList ? "Grid View" : "List View", systemImage: gridList ? "rectangle.grid.2x2": "list.bullet") {
gridList.toggle()
}
}
}
}
}
< /code>
Missions Struct и Missionc Class: < /p>
struct Missions: Identifiable, Codable, Hashable {
struct Crew: Codable, Hashable {
let name: String
let role: String
}
let id: Int
let launchDate: Date?
let crew: [Crew]
let description: String
var displayName: String {
"Apollo \(id)"
}
var image: String {
"apollo\(id)"
}
var getLaunchDate: String {
guard let a = launchDate else {
return "N/A"
}
return "\(a.formatted(date: .abbreviated, time: .omitted))"
}
}
class MissionC {
var missionItem: [Missions] = Bundle.main.decode("missions")
}
< /code>
пытался выяснить это со вчерашнего дня, перестроил код представления контента с нуля и не нашел ничего плохого. Попробовал загрузить в ошибочном представлении кучу других способов, и это сработало, поэтому я не думаю, что проблема есть. Кроме того, попробовал другой вид в Navlink, и он сработал, поэтому я оторван. Кажется, в взаимодействии между этим конкретным типом Navlink и этим конкретным представлением происходит что -то странное. Также попробовал кеш для очистки, папку сборки, удаление производных и т. Д. Ни один из которых не работал.
Подробнее здесь: https://stackoverflow.com/questions/796 ... ack-screen
Навигационная ссылка вид не загружается; Черный экран ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение