【问题标题】:Call a NavigationLink programmatically?以编程方式调用 NavigationLink?
【发布时间】:2019-10-19 11:36:45
【问题描述】:

是否可以通过编程方式调用导航链接?

这是可能的,但现在已弃用。

var link1 = NavigationLink("Link Text", destination: MyView1())
var link1 = NavigationLink("Link Text", destination: MyView2())

//Something like this
           Button(action: {

            if (option == 1){
                self.link1.presented?.value = true
            }
            else{
                self.link2.presented?.value = true
            }
        }

【问题讨论】:

    标签: swiftui navigationlink


    【解决方案1】:

    我不知道如何帮助调用导航链接,但也许我知道如何做你想做的事..

    请记住,在 SwiftUI 中我们使用结构,它们是 static。因此,您不能在代码运行时将self.link1.presented?.value 设置为true

    为此,您可以先将此 var 更改为 @State var,这意味着 SwiftUI 将使此 var 动态化。考虑到这一点,您可以处理要显示的视图,只需保存标记的选项。

    我修改了你的代码来显示这个:

    //begining of your struct
    @State var selectedOption = 1 
    
    //something changed the selectedOption
    self.selectedOption = 2
    
    //Here your NavigationLink ( use it without button)
    NavigationLink("Link Text", destination: selectedOption == 1 ? View1 : View2)
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2020-01-13
      • 1970-01-01
      • 2022-08-11
      • 1970-01-01
      • 2021-12-15
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      相关资源
      最近更新 更多