我正在尝试创建一个共享表来共享文本,它在iOS 14中工作正常,但在iOS 15中它告诉我
““windows”在iOS 15.0中已弃用:请UIWindowScene.windows在相关窗口场景上使用www.example.com”。
我如何使它在iOS 15上与SwiftUI一起工作
Button {
let TextoCompartido = "Hola 😀 "
let AV = UIActivityViewController(activityItems: [TextoCompartido], applicationActivities: nil)
UIApplication.shared.windows.first?.rootViewController?.present(AV, animated: true, completion: nil)
}
5条答案
按热度按时间ivqmmu1c1#
我认为最好直接使用SwiftUI API。一般来说,我会遵循以下步骤。
1.创建名为
ActivityView
的SwiftUIView
,它符合UIViewControllerRepresentable
。这将允许您将UIActivityViewController
引入SwiftUI。1.创建一个
Identifiable
结构来包含你要在ActivityView
中显示的文本。创建此类型将允许你使用SwiftUI sheet API并利用SwiftUI状态来通知应用何时显示新的ActivityView
。1.创建一个可选的
@State
变量,用于保存Identifiable
文本构造。当此变量更改时,sheet API将执行回调。1.点击按钮后,更新步骤3中设置的变量的状态。
1.使用sheet API创建将呈现给用户的
ActivityView
。下面的代码应该可以帮助您入门。
oiopk7p52#
未来,iOS 16将提供
ShareLink
视图,其工作原理如下:来源:https://developer.apple.com/videos/play/wwdc2022/10052/
时间代码偏移:二十五分二十八秒
vu8f3i0k3#
要避免出现警告,请更改检索窗口场景的方式。请执行以下操作:
bvjveswy4#
您可以使用中的答案尝试以下操作:How to get rid of message " 'windows' was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead" with AdMob banner?
请注意,您的代码对我来说是有效的,但是编译器给予了弃用警告。
qoefvg9y5#
在iOS 15中测试,带SwiftUI
要避免iOS 15方法过时警告,请使用此扩展