【问题标题】:SwiftUI Push View with NavigationLink from modal view从模态视图使用 NavigationLink 的 SwiftUI 推送视图
【发布时间】:2021-09-28 14:10:20
【问题描述】:

我通过按“展示我的模式”按钮来展示带有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()
    }
}

但是当我按下“推送导航链接视图”按钮时没有任何反应。

那么苹果指南是否允许从模态视图推送带有NavigationLink 的视图?如果是,最好的方法是什么?

在 iOS15 和 XCode 13 上测试

【问题讨论】:

    标签: ios xcode swiftui


    【解决方案1】:

    Apple 指南是否允许从模态视图推送带有NavigationLink 的视图?

    是的。只要确保在MyAlertView 的基础上有一个NavigationView。模态表创建了一个新的视图层次结构,NavigationLink 仅在上面的层次结构中某处存在NavigationView 时才有效。

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 2012-12-22
      相关资源
      最近更新 更多