UIHostingController 中的 SwiftUI:显示 ActionSheet 会发出有关分离视图控制器的警告

问题描述

我创建了一个 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"))
                               ])
        })
    }
}

当我点击按钮时,它工作正常并显示一个操作表,但在控制台中生成此警告:

[Presentation] 展示视图控制器 从分离视图 控制器TtGC7SwiftUI19UIHostingControllerVS_7AnyView: 不鼓励使用 0x7fac1fac8280>。

解决此警告的最佳方法是什么?如果在 UIHostingController 中托管,我应该在 SwiftUI 视图中显示 Alert 或 ActionSheet 吗?还是我应该以其他方式这样做?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...