我有一个共享视图控制器连接到一个列表.当用户点击列表行时,共享视图应该弹出并显示点击列表的内容.问题是,当我启动应用程序并点击列表项时,共享视图文本为空,如果我点击第二个不同的项目,它会显示内容:
//示例:启动应用程序,单击列表1并查看没有显示任何内容,然后单击列表2并显示内容.
我怎样才能使你第一次点击列表时,内容显示在ShareView控制器中.这是一个小项目
import SwiftUI
struct ContentView: View {
let StringList = ["List 1","List 2","List 3","List 4","List 5"]
@State var TextExample = ""
@State var IsOpen = false
var body: some View {
List {
ForEach(StringList, id: \.self) { string in
Text(string)
.onTapGesture {
TextExample = string
IsOpen = true
}
}
}.background(SharingViewController(isPresenting: $IsOpen) {
print("\(TextExample)")
let av = UIActivityViewController(activityItems: [TextExample], applicationActivities: nil)
av.completionWithItemsHandler = { _, _, _, _ in
IsOpen = false // required for re-open !!!
}
return av
})
}
}
struct SharingViewController: UIViewControllerRepresentable {
@Binding var isPresenting: Bool
var content: () -> UIViewController
func makeUIViewController(context: Context) -> UIViewController {
UIViewController()
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
if isPresenting {
uiViewController.present(content(), animated: true, completion: nil)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
任何建议都很好