SwiftUI - 知道以前的视图是啥

Posted

技术标签:

【中文标题】SwiftUI - 知道以前的视图是啥【英文标题】:SwiftUI - Know what the previous view wasSwiftUI - 知道以前的视图是什么 【发布时间】:2020-08-08 14:46:29 【问题描述】:

我想知道 SwiftUI 中是否有一个简单的函数来设置条件,即知道我们在什么视图中,在 .onAppear 函数中。

例如:有两个视图“View1”和“View2”导致视图“View3”。如果前一个视图是 View1,我希望 View3 的“转”变量为 true,如果前一个视图是 View2,我希望为 false。

我的示例代码:

struct View3: View 
    @State var turn: Bool
    var body: some View 
        Text("aaa")
        .onAppear 
            if /*previousView*/ == View1 
                self.turn = true
             else if /*previousView*/ == View2 
                self.turn = false
            
        
        
    

您知道解决此问题的最简单方法吗?谢谢你的帮助

【问题讨论】:

【参考方案1】:

最简单的方法:

struct View1: View 
    var body: some View 
        // ... other code

        View3(turn: true)

        // ... other code
    


struct View2: View 
    var body: some View 
        // ... other code

        View3(turn: false)

        // ... other code
    


struct View3: View 
    let turn: Bool
    var body: some View 
        Text("aaa")
    

【讨论】:

以上是关于SwiftUI - 知道以前的视图是啥的主要内容,如果未能解决你的问题,请参考以下文章

在 SwiftUI 中装饰文本片段的最佳方法是啥?

UIKit 中等效的 SwiftUI 工作表视图是啥?

在 SwiftUI 中将绑定传递给导航堆栈中每个视图的最佳方法是啥

SwiftUI:如何根据日期每天显示一个新视图,而以前的视图持续一周

将 SwiftUI 警报或操作表绑定到值类型模型属性的可选性(当属性为 nil 时显示视图)的好方法是啥?

在没有以前 NavigationLink 的 SwiftUI NavigationView 上显示系统后退按钮