Z S*_*Z S 5 uiview uiactionsheet swiftui uihostingcontroller
我创建了一个 SwiftUI 视图,它显示在 MKMapView 的注释标注中。我使用 UIHostingController 来包装 SwiftUI 视图,并使用 annotationView 的detailCalloutAccessoryView
属性来设置视图并显示它。这在大多数情况下工作正常。然后我在 SwiftUI 视图中添加了一些按钮,当点击这些按钮时需要显示警报或操作表。
这是代码:
struct ContactProfileButton: View {
@State var showActionSheet: Bool = false
var body: some View {
Button(action: {
print("Profile button tapped!")
self.showActionSheet.toggle()
}){
Image("profile").resizable()
}.frame(width: 26.0, height: 26.0)
.actionSheet(isPresented: $showActionSheet, content: {
print("Profile button - show action sheet")
return ActionSheet(title: Text("Profile title"),
message: Text("Profile message"),
buttons: [
.default(Text("Do something")),
.destructive(Text("Cancel"))
])
})
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击按钮时,它工作正常并显示一个操作表,但在控制台中生成此警告:
[演示]不鼓励从分离的视图控制器 < TtGC7SwiftUI19UIHostingControllerVS_7AnyView : 0x7fac1fac8280>呈现视图控制器 <SwiftUI.PlatformAlertController: 0x7fac118b3a00> 。
解决此警告的最佳方法是什么?如果在 UIHostingController 中托管,我应该在 SwiftUI 视图中显示 Alert 或 ActionSheet 吗?还是我应该以其他方式这样做?
归档时间: |
|
查看次数: |
124 次 |
最近记录: |