Координатор UITabbarcontroller
все. Я изучаю шаблон координатора от Пола, взламывающего с помощью swift прямо сейчас, я пытаюсь подключить своего координатора к UITabbarcontroller, чтобы показать панель вкладок. но он не работает, когда я пытаюсь запустить свой симулятор, показывает только черный экран, а не панель вкладок. что на самом деле пошло не так. вот как я настраиваю своего координатора.
// This is in sceneDelegate
let window = UIWindow(frame: windowScene.coordinateSpace.bounds)
self.window = window
window.rootViewController = MainTabBarController()
window.makeKeyAndVisible()
// Tabbarcontroller
class MainTabBarController: UITabBarController {
let main = MainCoordinator(navigationController: UINavigationController())
override func viewDidLoad() {
super.viewDidLoad()
main.start()
viewControllers = [main.navigationController]
}
// MainCoordinator
protocol Coordinator {
var childCoordinator: [Coordinator] { get }
var navigationController: UINavigationController { get set }
func start()
}
class MainCoordinator: Coordinator {
private(set) var childCoordinator: [Coordinator] = []
var navigationController: UINavigationController
init(navigationController: UINavigationController) {
self.navigationController = navigationController
}
func start() {
searchVC()
}
func searchVC() {
let child = SearchCoordinator(navigationController: navigationController)
childCoordinator.append(child)
child.start()
}
func followerListVC() {
let child = FollowersCoordinator(navigationController: navigationController)
childCoordinator.append(child)
child.start()
}
}
}
// SearchCoordinator
class SearchCoordinator: Coordinator {
weak var parentCoordinator: MainCoordinator?
var childCoordinator: [Coordinator] = []
var navigationController: UINavigationController
init(navigationController: UINavigationController) {
self.navigationController = navigationController
}
func start() {
let searchVC = SearchVC()
searchVC.tabBarItem = UITabBarItem(tabBarSystemItem: .search, tag: 0)
searchVC.coordinator = self
navigationController.pushViewController(searchVC, animated: true)
}
}