ios - UIViewControllerRepresentable 在 Xcode 14 iOS 16 上崩溃

标签 ios swiftui

我正在尝试在 Xcode 14 beta 和 iOS 16 中为我的 View Controller 创建 Xcode 预览。每当我运行代码时,它只会在对话框中抛出一些 Xcode 预览错误并使预览崩溃。我没有使用 Storyboard,所以我只是以编程方式加载我的 ViewController2。

import Foundation
import UIKit
import SwiftUI

final class ViewController2: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.green
    }
}

struct ViewController2_Previews: PreviewProvider {
    static var previews: some View {
        ViewController2()
    }
}

extension ViewController2: UIViewControllerRepresentable {
    
    func makeUIViewController(context: Context) -> ViewController2 {
        ViewController2()
    }
    
    func updateUIViewController(_ uiViewController: ViewController2, context: Context) {
        
    }
}

最佳答案

哎哟......你使用类表示 - 这是个坏主意(即使是最终的!) - 只使用(!)结构

这是固定的变体(使用 Xcode 14b2 测试)

struct ViewController2_Previews: PreviewProvider {
    static var previews: some View {
        ViewControllerRep()
    }
}

struct ViewControllerRep: UIViewControllerRepresentable {
    func makeUIViewController(context: Context) -> ViewController2 {
        return ViewController2()
    }
    
    func updateUIViewController(_ uiViewController: ViewController2, context: Context) {
        
    }
}

关于ios - UIViewControllerRepresentable 在 Xcode 14 iOS 16 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72775055/

相关文章:

ios - Phonegap CSS :focus and/or :active on button not working

ios - 快速实现 HMAC 和 SHA1 加密

SwiftUI Button 与 Map 交互

swiftui - 通过 ObservableObject 向下传递 GestureState 属性

ios - 什么情况下需要使用MTLStoreActionStoreAndMultisampleResolve而不是MTLStoreActionMultisampleResolve?

ios - 使用JPG为我的UIImage正确命名

ios - 应用程序进入后台后,AVAssetReader 失败,为什么?

swift - Swiftui 中的汉堡导航菜单幻灯片动画

ios - Swift UI 是否像 UIKit 一样具有类似于 viewDidLoad() 的功能?如果没有,如何创建这样一个在启动时调用的函数?

swiftui - 在 macOS 上的 SwiftUI 中将颜色从源拖放到目标