Open UIKIT viewcontroller on click barbutton in swiftUI

78 Views Asked by At

I have swiftUI where on button click i want to present popover which is created in UIKIT.

I have swiftui screen which has some bar button on click on that bar button i want to open popover on bottom of that.

SwiftUI Screen

    struct ContentView: View {

    @State var isOpenView = false
    let session: Session
    let someBarButtonItem: UIBarButtonItem
   
    var body: some View {
    
        NavigationView {

            VStack {

                               
            } .navigationBarItems(leading: Button(action: {
                    TestControllerView(session, someBarButtonItem)
                }, label: { Text("someBarButton") }))
        }
               
         

    }
}

ViewRepresentable:

struct TestControllerView: UIViewControllerRepresentable {
    private let session: Session
    private let someBarButtonItem: UIBarButtonItem
    private var mainController: TestControllerViewController?
    
    init(session: Session someBarButtonItem: UIBarButtonItem ) {
        self.session = session
        self.retrieveSalesBarButtonItem = someBarButtonItem
        self.mainController = TestControllerViewController(session: self.session)
    }


    func makeUIViewController(context: Context) -> TestControllerViewController {
        if let mainController = mainController {
            mainController.modalPresentationStyle = UIModalPresentationStyle.popover

            if let popoverPresentationController = mainController.popoverPresentationController {
                popoverPresentationController.barButtonItem = someBarButtonItem

                popoverPresentationController.passthroughViews = []
                popoverPresentationController.backgroundColor = UIColor(.red)
            }
            present(mainController, animated: true, completion: nil) // This is how i used to do in UIKIT but i am not sure how to present popover over here. This is not working  and problem area
        }
        
    }
 }

How can i present popover which is create in UIKIT from button which is created in swiftui

0

There are 0 best solutions below