1

我有兩個viewControllers ControllerA和ControllerB。兩者都沒有NavigationBar,因爲我在兩個控制器中隱藏了navigationBar。在ControllerB上有一個tableview,最重要的是一個searchBar。在選擇任何表格時,我將控制器退回ControllerA。問題是它在控制器A上顯示了一些條,我不知道如何隱藏它。如果我不搜索任何東西,並按下控制器B上的後退按鈕,則控制器A上不會出現導航條。但是,如果我選擇了一些東西,那麼它顯示我認爲它與searchBar演示文稿有關。這裏是我的代碼如何隱藏searchController後解除導航欄

ControllerB

override func viewDidLoad() { 
     super.viewDidLoad() 

     self.resultSearchController = ({ 

      let controller = UISearchController(searchResultsController: nil) 
      controller.searchResultsUpdater = self 
      controller.dimsBackgroundDuringPresentation = false 

      controller.searchBar.sizeToFit() 
      controller.searchBar.placeholder = "Search City" 
      self.tableView.tableHeaderView = controller.searchBar 
      self.definesPresentationContext = true 
      return controller 


     })() 

     self.tableView.reloadData() 
    } 

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

     if (self.resultSearchController.active) { 

      return self.filteredKeys.count 
     } else { 

      return dict.count-1 
     } 

    } 

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CountryTableViewCell 

     if(self.resultSearchController.active){ 

      // let key = self.filteredKeys[indexPath.row] 

      //let dictionary = self.dict[key] as! NSDictionary 






       let cityName = (((self.dict["\(indexPath.row)"] as?NSDictionary)!["Country"] as?NSDictionary)!["city_name"] as?NSString) 

       let stateName = (((self.dict["\(indexPath.row)"] as?NSDictionary)!["Country"] as? NSDictionary)!["state_name"] as? NSString) 

       let shortName = (((self.dict["\(indexPath.row)"] as?NSDictionary)!["Country"] as? NSDictionary)!["short_country_name"] as? NSString) 


      if (cityName !== "-" || shortName !== "-"){ 
       cell.stateNameLabel.text = stateName as? String 
       cell.cityNameLabel.text = cityName as? String 
       cell.shortNameLabel.text = shortName as? String 

      } 



     } 
      return cell 


    } 

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

     let id = Int((((dict["\(indexPath.item)"] as?NSDictionary)!["Country"] as?NSDictionary)!["id"] as?NSString)! as String) 

     let cityName = (((dict["\(indexPath.item)"] as?NSDictionary)!["Country"] as?NSDictionary)!["city_name"] as?NSString)! as String 

     let countryShortName = (((dict["\(indexPath.item)"] as?NSDictionary)!["Country"] as?NSDictionary)!["short_country_name"] as?NSString)! as String 

     delegate.country(id!,cityName: cityName, countryShortName: countryShortName,departureOrArrivalSegue: departureOrArrivalSegue!) 


     self.navigationController!.popViewControllerAnimated(true) 



    } 
+0

@在控制器B以下 self.navigationController的USER1,添加這些線!.popViewControllerAnimated(真) self.navigationController?.setNavigationBarHidden(true,animated:true) –

回答

0

你可以使用

self.navigationController?.setNavigationBarHidden(true, animated: true)