在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的错误,该错误第二次不起作用
下面是一个与我可能接近的示例。
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的错误,该错误第二次不起作用