Я создаю проект с использованием SwiftUI и хотел бы добавить панель поиска на панель навигации, например, в приложении родных настроек, почтовом приложении и т. Д. c.
Я пробовал несколько вещей, но не могу заставить его работать. Следующий код работает нормально, но строка поиска не будет отображаться (я пытался прокрутить вверх), даже если я включу navigationController.navigationItem.hidesSearchBarWhenScrolling = false
. Любая помощь будет оценена.
//
// ContentView.swift
// SwiftUITest
//
// Created by me on 1/7/20.
// Copyright © 2020 me. All rights reserved.
//
import SwiftUI
struct HomeView: View {
var body: some View {
ScrollView {
HStack {
Spacer(minLength: 0)
Text("Hello World")
Spacer(minLength: 0)
}
}
.navigationBarTitle(Text("Search"))
}
}
struct SecondView: View {
var body: some View {
return Text("Second View")
}
}
struct CustomUIViewControllerRepresentation: UIViewControllerRepresentable {
typealias UIViewControllerType = UINavigationController
func makeUIViewController(context: Context) -> UINavigationController {
let viewController = UIHostingController(rootView: HomeView())
let navigationController = UINavigationController(rootViewController: viewController)
navigationController.navigationBar.prefersLargeTitles = true
let searchController = UISearchController()
navigationController.navigationItem.searchController = searchController
return navigationController
}
func updateUIViewController(_ uiViewController: UINavigationController, context: Context) {
}
}
struct ContentView: View {
var body: some View {
CustomUIViewControllerRepresentation()
}
}