首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftUI NavigationLink pop

SwiftUI NavigationLink pop
EN

Stack Overflow用户
提问于 2019-07-15 17:16:51
回答 3查看 7.5K关注 0票数 14

我已经用NavigationLink导航到了一个新的视图,我想从编程上回到我所在的位置。这在swiftUI中是可能的吗?我知道对于模态表示,我们可以使用.isPresented环境值,但是导航呢?

EN

回答 3

Stack Overflow用户

发布于 2020-07-13 00:19:51

你真的可以简单地创建自定义的后退按钮。只需两行代码即可实现?

代码语言:javascript
复制
@Environment(\.presentationMode) var presentationMode
self.presentationMode.wrappedValue.dismiss()

示例:

代码语言:javascript
复制
import SwiftUI

struct FirstView: View {
    @State var showSecondView = false
    
    var body: some View {
        NavigationLink(destination: SecondView(),isActive : self.$showSecondView){
            Text("Push to Second View")
        }
    }
}


struct SecondView : View{
    @Environment(\.presentationMode) var presentationMode

    var body : some View {    
        Button(action:{ self.presentationMode.wrappedValue.dismiss() }){
            Text("Go Back")    
        }    
    }
}
票数 15
EN

Stack Overflow用户

发布于 2019-11-01 15:17:29

是的,您现在可以使用以下代码以编程方式弹出一个NavigationLink视图:

代码语言:javascript
复制
import SwiftUI

struct MainViewer : View{
    @State var showView = false
    var body : some View {

        NavigationLink(destination:DestView(showView: self.$showView),isActive : self.$showView){
       Text("Push View")

    }
   }
}


struct DestView : View{
    @Binding var showView : Bool
    var body : some View {

        Button(action:{self.showView = false}){
            Text("Pop Screen")

    }

   }
}
票数 13
EN

Stack Overflow用户

发布于 2019-07-16 00:36:24

目前这肯定是个bug。Apple提供了样板代码,允许将“后退”或“弹出”功能内置到导航视图“DetailView”中。我唯一的猜测是,苹果正在解决后端在SwiftUI中完全实现Combine的问题,以实现“推”和“弹”类型的操作。我无法想象在没有这个功能的情况下,SwiftUI会比创建一个类似于RyanAshcraft上面所做的更新状态的组合发布器更容易访问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57036645

复制
相关文章

相似问题

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