У меня есть приложение, в котором используется NavigationPlitView в следующем представлении, которое вступает в навигацию root ViewStack (мне не нравится использовать макет с тремя столбцами и предпочитаю иметь целый экран для моего первого представления). Тем не менее, в этом сценарии NavigationPlitView не будет работать на iPhone (я понимаю, что iPhone превращает NavigationPlitView в навигационную систему , но он даже не протолкнет следующее представление на экране, когда навигационная связь ). Вот полный код: < /p>
Код: Выделить всё
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)
}
}
}
}
}
Когда вы нажимаете «тест», он только выделяет и не проталкивает следующее представление на экране. Если я сделаю NextView root View, он отлично работает на iPhone. Но мне было интересно, возможно ли есть еще одна причина? У меня есть работа вокруг, где я использую навигационную систему вместо NavigationPlitView на iPhone, но я предпочитаю не делать этого, потому что я хочу, чтобы мое приложение работало на больших экранах iPhone, где NavigationSplitView может в конечном итоге работать как iPad.
Подробнее здесь:
https://stackoverflow.com/questions/794 ... n-root-vie