Ich habe eine App, die in der nächsten Ansicht NavigationssplitView verwendet, die auf den NavigationStack der Stammansicht gedrückt wird (ich mag es nicht, ein Dreispalten -Layout zu verwenden und für meine erste Ansicht einen ganzen Bildschirm zu haben). In diesem Szenario funktioniert NavigationssplitView jedoch nicht auf dem iPhone (ich verstehe, dass das iPhone NavigationssplitView in einen NavigationStack verwandelt, aber es wird nicht einmal die nächste Ansicht auf den Bildschirm verschoben, wenn ein NavigationLink tippt wird). Hier ist der vollständige Code: < /p>
Code: Select all
import SwiftUI
struct HomeView: View {
var body: some View {
NavigationStack {
VStack {
NavigationLink("NextView", destination: NextView())
}
}
}
}
struct NextView: View {
private let testWorkedString: String = "Test Worked"
@State private var selectedString: String?
var body: some View {
NavigationSplitView {
List(selection: self.$selectedString) {
NavigationLink("Test", value: self.testWorkedString)
}
} detail: {
if let selectedString = self.selectedString {
if selectedString == self.testWorkedString {
Text(self.testWorkedString)
}
}
}
}
}
Wenn Sie auf "Test" tippen, werden nur die nächste Ansicht auf den Bildschirm angezeigt und nicht drückt. Wenn ich NextView zur Root -Ansicht erstelle, funktioniert sie auf dem iPhone einwandfrei. Aber ich habe mich gefragt, ob es möglich ist, dass es einen anderen Grund gibt? Ich habe eine Arbeit herum>