代码示例
1、 OC和Swift的相互操作
创建对应的bridge以及导入xx-swift.h 文件,就可以相互操作了。
2、OC跳转到SwiftUI页面
OC代码Copy
UIViewController *vc = [[XXViewController alloc] createTestViewController];
[self.navigationController pushViewController:vc animated:YES];SwiftUI写的代码
import SwiftUI
// 重点是这里要创建一个过渡的类,因为在OC中无法写入UIHostingController文件以及MySwiftUIView定义的文件
@objc
class XXViewController: NSObject{
@MainActor @objc func createTestViewController() -> UIViewController{
let vc = UIHostingController(rootView: MySwiftUIView());
return vc
}
}
public struct MySwiftUIView: View {
public var body: some View {
NavigationLink(destination: UIKitViewController()) {
Text("Hello from SwiftUI!")
.font(.largeTitle)
.padding()
}
}
}3、UIKit的页面跳转到SwiftUI的页面
上面的代码NavigationLink , 类似push
需要实现UIViewControllerRepresentable 这个协议,将vc嵌入到里里面。
4、SwiftUI跳转到UIKit
如果导航到UIkit的页面的时候,需要实现UIViewControllerRepresentable 的方法。
Last updated