#ios #xcode #swiftui
Вопрос:
Я представляю модальный вид fullScreenCover
, нажав кнопку «представить мой модальный» .:
struct ContentView: View {
@State var presentMyModal = false
var body: some View {
Text("Hello, world!")
.fullScreenCover(isPresented: $presentMyModal) {
MyModalView()
}
Button(action: { presentMyModal = true },
label: { Text("present my modal")})
}
}
Затем я хочу создать новый вид NavigationLink
с помощью этого модального:
struct MyAlertView: View {
@State var pushNavigationLinkedView = false
var body: some View {
Text("MyAlertView")
.padding()
Button(action: { pushNavigationLinkedView = true },
label: { Text("push navigation linked view")})
NavigationLink(destination: NavigationLinkedView(),
isActive: $pushNavigationLinkedView) {
EmptyView()
}
}
}
И вот мой NavigationLinkedView
:
struct NavigationLinkedView: View {
var body: some View {
Text("NavigationLinkedView")
.padding()
}
}
Но ничего не происходит, когда я нажимаю кнопку «нажать навигационный связанный вид».
Итак, разрешено ли руководством Apple продвигать представление NavigationLink
с помощью модального представления ? Если да, то как лучше всего это сделать ?
Протестировано на iOS15 и XCode 13
Ответ №1:
Итак, разрешено ли руководством Apple продвигать представление
NavigationLink
с помощью модального представления?
ДА. Просто убедитесь, что у вас есть a NavigationView
в основе MyAlertView
. Модальный лист создает новую иерархию представлений и NavigationLink
работает только тогда, когда NavigationView
где-то в иерархии выше есть.