SwiftUI UISearchController searchResultsController проблема с стеком навигации - PullRequest
0 голосов
/ 22 октября 2019

У меня есть UISearchController, который был сделан UIViewControllerRepresentable для SwiftUI, следующим образом:

struct SearchViewController<Content: View>: UIViewControllerRepresentable {
    var content: () -> Content
    let searchResultsView = SearchResultsView()

    init(@ViewBuilder content: @escaping () -> Content) {
        self.content = content
    }

    func makeUIViewController(context: Context) -> UINavigationController {

        let rootViewController = UIHostingController(rootView: content())
        let navigationController = UINavigationController(rootViewController: rootViewController)
        let searchResultsController = UIHostingController(rootView: searchResultsView)

        // Set nav properties
        navigationController.navigationBar.prefersLargeTitles = true
        navigationController.definesPresentationContext = true

        // Create search controller
        let searchController = UISearchController(searchResultsController: searchResultsController)
        searchController.searchBar.autocapitalizationType = .none
        searchController.delegate =  context.coordinator
        searchController.searchBar.delegate = context.coordinator // Monitor when the search button is tapped.

        // Create default view
        rootViewController.navigationItem.searchController = searchController
        rootViewController.title = "Search"

        return navigationController
    }

    func updateUIViewController(_ navigationController: UINavigationController, context: UIViewControllerRepresentableContext<SearchViewController>) {
        //
    }
}

Это работает и отображает searchResultsController, когда пользователь ищет. Однако searchResultsController, похоже, не знает, что это навигационный контекст / стек, поэтому я не могу перейти из этого списка в searchResultsController.

Может ли это быть структурировано, чтобы разрешить навигацию с searchResultsController, или это в настоящее время ограничение SwiftUI.

Любой совет очень ценится!

...