簡體   English   中英

快速搜索后,swift 2搜索欄將不會隱藏

[英]swift 2 search bar will be not hidden after unwind segue

在我的Swift 2應用中,我有一個帶有搜索欄的表格視圖控制器。 我在我的viewDidLoad中設置了搜索欄。 並在viewWillAppear中設置tableView的偏移量,因為我想在開始時隱藏搜索欄。 這個工作被發現。

但是,如果我切換到另一個視圖控制器,並退出退出搜索返回TableViewController,則搜索欄將直接可見。

如果我從另一個具有正常模式選擇(而不是展開)的視圖控制器返回到TableViewController,則搜索欄將被隱藏,因為tableview.setContentOffset將處於活動狀態。

任何想法我做錯了什么?

class TableViewController: UITableViewController, ADBannerViewDelegate, UISearchBarDelegate, UISearchResultsUpdating {

    let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
    var items = [CoreData_ITEMS]()


    func updateSearchResultsForSearchController(searchController: UISearchController) {}

    func DatenAbrufen() {

            let fetchRequest = NSFetchRequest(entityName: "ITEMS")      
            do {
                try self.items = self.managedObjectContext!.executeFetchRequest(fetchRequest) as! [CoreData_ITEMS]
            } catch { }

            self.tableView.reloadData()
        }




/*************** VIEW DID LOAD ***************/
    override func viewDidLoad() {
        super.viewDidLoad()

        let searchController = UISearchController(searchResultsController: nil)
        searchController.searchBar.delegate = self
        searchController.searchResultsUpdater = self
        searchController.hidesNavigationBarDuringPresentation = false
        searchController.dimsBackgroundDuringPresentation = false
        tableView.tableHeaderView = searchController.searchBar
    }






    override func viewWillAppear(animated: Bool) {
        DatenAbrufen()
        tableView.contentOffset = CGPointMake(0,44) 
    }



    /*************** ANZAHL DER ZELLEN ERMITTELN ***************/
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.count
    }


    /*************** ZELLEN MIT INHALT FÜLLEN ***************/
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell") as! ModifyCells


        var ITEM:CoreData_ITEMS
        ITEM = items[indexPath.row]

        cell.Name.text = ITEM.name
        return cell
    }



    /*************** EXIT FUNKTIONEN ***************/
    @IBAction func exit_to_TViewController(segue: UIStoryboardSegue) {}


}

我有一個類似的問題。 問題是除非在屏幕上顯示tableview,否則不會設置tableView.contentOffset 我不知道為什么會有這種行為。 因此,為我解決的問題是將tableView.contentOffset調用移到vieDidAppear但是滾動有點可見。 這對我來說不是問題。 如果您不希望這樣做,可以嘗試將調用移至viewDidLayoutSubviews

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM