无法使搜索栏出现在嵌套在标签栏控制器中的导航控制器中

时间:2020-02-16 01:39:20

标签: swift xcode uiviewcontroller uikit

基本上,我有一个应用程序,其根控制器是选项卡栏控制器,每个选项卡都需要自己的导航堆栈,但导航栏的外观类似

所以我有

class CommonNavigationController: UINavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationBar.barTintColor = .orange
        let searchController = UISearchController(searchResultsController: nil)
        navigationItem.searchController = searchController
        navigationItem.searchController?.searchBar.placeholder = "search"
    }
}

,然后是通用导航控制器的两个子类

final class TabTwoNavigationViewController: CommonNavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
final class TabOneNavigationViewController: CommonNavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

和父选项卡栏控制器看起来像这样

final class MainTabBarViewController: UITabBarController {
    init() {
        super.init(nibName: nil, bundle: nil)
        let tabOneNavigationViewController = TabOneNavigationViewController()
        let tabOneIcon = UITabBarItem(title: "One", image: UIImage(systemName: "rectangle"), selectedImage: UIImage(systemName: "circle"))
        tabOneNavigationViewController.tabBarItem = tabOneIcon

        let tabTwoNavigationViewController = TabTwoNavigationViewController()
        let tabTwoIcon = UITabBarItem(title: "Two", image: UIImage(systemName: "square"), selectedImage: UIImage(systemName: "circle"))
        tabTwoNavigationViewController.tabBarItem = tabTwoIcon

        viewControllers = [tabOneNavigationViewController, tabTwoNavigationViewController]
        selectedIndex = 1

        tabBar.isTranslucent = false
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

我到底在做什么错?我无法显示搜索栏!

非常感谢您阅读!

0 个答案:

没有答案
相关问题