【发布时间】:2022-01-18 17:06:19
【问题描述】:
我有一个非常大的objective-c 项目,正在尝试慢慢整合SwiftUI。我已经能够在从 Objective-c 类调用的 swiftUI 类中成功实现一些屏幕。
现在面临的一个奇怪错误是 List 在应用程序运行时不可见。虽然它在预览中可见。而且当我用 VStack 替换 List 时,运行应用程序时它看起来很好。如果我制作一个独立的 SwiftUI 应用程序并运行此代码,那么它也可以正常运行。只有当我从objective-c类调用这个类时才会出现问题。
附加图片
代码
import SwiftUI
struct InfoShareView: View {
var body: some View {
List{
Text("First Line")
Text("Second Line")
}
.padding()
.background(Color.white)
}
}
struct InfoShareView_Previews: PreviewProvider {
static var previews: some View {
InfoShareView()
}
}
这里是对 InfoShareView 的调用
import UIKit
import SwiftUI
class AboutViewControllerSwift: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let swiftController = UIHostingController(rootView: InfoShareView())
addChild(swiftController)
swiftController.view.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(swiftController.view)
swiftController.view.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
swiftController.view.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
}
}
这是来自objective-c类的调用
AboutViewControllerSwift *aboutViewController = [[AboutViewControllerSwift alloc] initWithNibName:nil bundle:nil];
self.nvgController=[[UINavigationController alloc]initWithRootViewController:aboutViewController];
self.window.rootViewController=self.nvgController;
[self.window makeKeyAndVisible];
【问题讨论】:
标签: objective-c swiftui swiftui-list