首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ActionSheet中导航?

如何在ActionSheet中导航?
EN

Stack Overflow用户
提问于 2019-12-23 19:18:12
回答 1查看 1.1K关注 0票数 6

如何在只能传递Text而不能传递NavigationLinkActionSheet中导航

示例代码:

代码语言:javascript
复制
struct DemoActionSheetNavi: View {
    @State private var showingSheet = false

    var body: some View {
        NavigationView {

            Text("Test")

            .actionSheet(isPresented: $showingSheet) {
                ActionSheet(
                    title: Text("What do you want to do?"),
                    message: Text("There's only one choice..."),
                    buttons: [
                        .default(Text("How to navigate from here to HelpView???")),
                ])
            }


        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-23 19:32:34

你需要这样的东西:

代码语言:javascript
复制
struct DemoActionSheetNavi: View {

    @State private var showingSheet = false
    @State private var showingHelp = false

    var body: some View {
        NavigationView {
            VStack {
                Text("Test")
                Button("Tap me") { self.showingSheet = true }
                NavigationLink(destination: HelpView(isShowing: $showingHelp),
                               isActive: $showingHelp) {
                    EmptyView()
                }
            }
            
        }
        .actionSheet(isPresented: $showingSheet) {
            ActionSheet(
                title: Text("What do you want to do?"),
                message: Text("There's only one choice..."),
                buttons: [.cancel(),
                          .default(Text("Go to help")) {
                            self.showingSheet = false
                            self.showingHelp = true
                    }])
        }
        
        
    }
}

您有另一个以编程方式触发NavigationLink的状态(您也可以使用.sheet和模态表示来实现)。您还需要将showingHelp作为@Binding传递,以帮助视图重置它。

代码语言:javascript
复制
struct HelpView: View {
    
    @Binding var isShowing: Bool

    var body: some View {
        Text("Help view")
            .onDisappear() { self.isShowing = false }
        
    }
    
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59454407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档