Как убрать панель навигации из контроллера вида - PullRequest
0 голосов
/ 07 октября 2019

SearchViewController viewDidLoad имеет следующие функциональные возможности

override func viewDidLoad() {
    super.viewDidLoad()

    self.cache = NSCache()

    let path = "books";
    self.ref = Database.database().reference().child(path);


    tableViewBooks.dataSource = self
    tableViewBooks.delegate = self
    tableViewBooks.register(BookDetailTableViewCell.self, forCellReuseIdentifier: "book")

    // Uncomment the following line to preserve selection between presentations
    self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()
    searchController.searchResultsUpdater = self
    searchController.obscuresBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search"
    searchController.searchBar.searchBarStyle = UISearchBar.Style.prominent
    searchController.searchBar.isTranslucent = false

    let searchBarView = UIView(frame: CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat(UIScreen.main.bounds.size.width), height: CGFloat(45)))

    let view = UIView();
    view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width , height: 54)
    let searchBar = searchController.searchBar
    searchBar.backgroundColor = UIColor.white
    searchBar.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width , height: 44)
    searchBar.searchBarStyle = UISearchBar.Style.prominent
    searchBar.placeholder = " Search book title..."
    searchBar.sizeToFit()
    view.backgroundColor = UIColor.white
    searchBar.isTranslucent = false
    searchBarView.addSubview(searchBar)
    view.addSubview(searchBarView)
    tableView.tableHeaderView = view
    definesPresentationContext = true

    tableView.separatorStyle = .none
}

Когда кто-то нажимает на строку в табличном представлении в этом контроллере представления, он отправляется в DetailController

        tableRowData = filteredBooks[indexPath.row]
        self.performSegue(withIdentifier: "toDetail", sender: nil)

В DetailControler есть навигациябар, который я не могу удалить. Я попытался добавить следующий код для viewWillAppear, но это не имело никакого значения. Что я могу сделать?

   override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.setNavigationBarHidden(true, animated: false)
        self.navigationController?.setNavigationBarHidden(true, animated: true)
        self.navigationController?.navigationBar.isHidden = true
        self.navigationController?.isNavigationBarHidden = true
        refresh()
    }

1 Ответ

1 голос
/ 07 октября 2019

Я попробовал ваш код и обнаружил, что если вы установите hidesNavigationBarDuringPresentation на false, панель навигации DetailController будет скрыта правильно. Вот мой код

searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search"
searchController.searchBar.searchBarStyle = UISearchBar.Style.prominent
searchController.searchBar.isTranslucent = false
searchController.hidesNavigationBarDuringPresentation = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...