热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

是否已替换过时的PresentationLink?(Xcode11beta4)

如何解决《是否已替换过时的PresentationLink?(Xcode11beta4)》经验,为你挑选了1个好方法。

在Xcode beta 4中,使用PresentationLink会给出以下警告:“不推荐使用'PresentationLink':请改用.sheet修饰符。”

我假设它们的意思是某种形式的

func sheet(isPresented: Binding, onDismiss: (() -> Void)? = nil, content: @escaping () -> Content) -> some View where Content : View

但我不确定如何切换到此模式-特别是,这种isPresented说法使我感到困惑。我知道有一个名为isPresented的Environment变量,但是对于当前View来说,这不是吗,不是要呈现的View吗?

我对此最感兴趣,因为我希望这能解决PresentationLinks仅工作一次的问题(请参阅swiftUI PresentaionLink第二次不工作)

现在不赞成使用PresentationLink的人可以提供一个简单的示例来显示视图吗?例如,将以下内容转换为使用.sheet修饰符:

  NavigationView {
        List {
            PresentationLink(destination: Text("Destination View")) {
                Text("Source View")
            }
        }
    }

Zain.. 5

下面是一个与我可能接近的示例。

import SwiftUI

struct Testing : View {
    @State var isPresented = false

    var body: some View {
        NavigationView {
            List {
                Button(action: { self.isPresented.toggle() })
                    { Text("Source View") }
                }
            }.sheet(isPresented: $isPresented, content: { Text("Destination View") })
    }
}

实际上,这确实可以解决您所引用的有关PresentationLinks的错误,该错误第二次不起作用



1> Zain..:

下面是一个与我可能接近的示例。

import SwiftUI

struct Testing : View {
    @State var isPresented = false

    var body: some View {
        NavigationView {
            List {
                Button(action: { self.isPresented.toggle() })
                    { Text("Source View") }
                }
            }.sheet(isPresented: $isPresented, content: { Text("Destination View") })
    }
}

实际上,这确实可以解决您所引用的有关PresentationLinks的错误,该错误第二次不起作用


推荐阅读
author-avatar
shiorinrin_933_893
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有