代码示例

参考代码

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