Координатор 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)
      }
}

0 ответов

Другие вопросы по тегам