Как использовать координатор протокола с TabBar?
я видел несколько статей об этой проблеме, и я не могу найти способ заставить мое приложение работать так, как я хочу. У меня есть шаблон координатора с двумя контроллерами представления, и я хочу настроить панель навигации с большими заголовками. Когда я пытаюсь использовать панель навигации, она не работает. Я не могу установить заголовок или некоторые атрибуты. Вот что я хочу:[изображение панели навигации][1][1]: https://i.stack.imgur.com/WB4I7.png Это мой код:
Делегат сцены:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
if #available(iOS 15, *) {UINavigationBar.appearance().scrollEdgeAppearance = UINavigationBarAppearance()}
guard let winScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: winScene)
self.window?.makeKeyAndVisible()
let navigationController = UINavigationController()
self.window?.rootViewController = navigationController
let coordinator = MainCoordinator(navigationController: navigationController)
coordinator.start()
}
Главный координатор:
class MainCoordinator: Coordinator{
let tabController = TabBarController()
let controller1 = EntryListViewController()
let controller2 = CategoryListViewController()
var navigationController: UINavigationController
init(navigationController: UINavigationController) {
self.navigationController = navigationController
tabController.setViewControllers([controller1,controller2], animated: false)
tabController.tabBar.isTranslucent = false
guard let items = tabController.tabBar.items else {return}
items[0].title = "Lançamentos"
items[1].title = "Categorias"
let images = ["Lancamentos", "Categorias"]
for i in 0...items.count - 1 {
items[i].image = UIImage(named: images[i])
}
tabController.navigationController?.navigationItem.title = "Teste"
tabController.navigationController?.navigationBar.prefersLargeTitles = true
tabController.navigationController?.navigationBar.isTranslucent = false
tabController.navigationController?.navigationBar.isOpaque = false
controller1.title = "Meus gastos"
controller2.title = "Categorias"
}
func start() {
self.navigationController.pushViewController(tabController, animated: true)
}
}