ios - 使用SwiftUI内容 View 而不是iOS Action Extension中的ActionViewController进行初始化-LMLPHP我的整个代码库都在UIKit中。我想使用swiftUI构建 Action 扩展模块。

我可以将 NSExtensionPrincipalClass 添加为扩展UI的初始入口点。如何将初始入口点设置为swiftUI内容 View 。

struct ActionExtensionInitialView: View {
    var body: some View {
        Text("Hello, World!")
    }
}

最佳答案

您的主体类如下所示(经过Xcode 11.2测试和使用)

class ActionViewController: UIHostingController<AnyView> {

    // override designated initialiser
    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        let contentView = ActionExtensionInitialView() // << SwiftUI root view
        super.init(rootView: AnyView(contentView))
    }

    @objc required dynamic init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

关于ios - 使用SwiftUI内容 View 而不是iOS Action Extension中的ActionViewController进行初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60093274/

10-15 20:56