2016-05-21 9 views
0

Ich versuche, den searchdisplaycontroller für meine Tabellenansicht einzurichten und habe ein paar Probleme bei der Deklaration meiner iboutlet für die Tabellenansicht selbst. Anbei ist ein Screenshot sowie mein Code. Jeder Einblick sehr geschätzt. Probleme bei der Einrichtung von searchdisplaycontroller mit tableview - Swift

Code Errors Img

import UIKit 

class DataTableExercisesTableViewController: UITableViewController, UISearchBarDelegate { 

var exercises = ["Abs", "Arms", "Back", "Chest", "Legs", "Shoulders", "Triceps"] 
var searchActive : Bool = false 

@IBOutlet var tableView: UITableView! 
@IBOutlet weak var searchBar: UISearchBar! 
var filtered:[String] = [] 

override func viewDidLoad() { 
    super.viewDidLoad() 
    tableView.tableFooterView = UIView() 

    tableView.delegate = self 
    tableView.dataSource = self 
    searchBar.delegate = self 

} 



// MARK: - Table view data source 



override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if(searchActive) { 
     return filtered.count 
    } 
    return exercises.count; 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell")! as UITableViewCell; 
    if(searchActive){ 
     cell.textLabel?.text = filtered[indexPath.row] 
    } else { 
     cell.textLabel?.text = exercises[indexPath.row]; 
    } 

    return cell; 
} 




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



} 


func searchBarTextDidBeginEditing(searchBar: UISearchBar) { 
    searchActive = true; 
} 

func searchBarTextDidEndEditing(searchBar: UISearchBar) { 
    searchActive = false; 
} 

func searchBarCancelButtonClicked(searchBar: UISearchBar) { 
    searchActive = false; 
} 

func searchBarSearchButtonClicked(searchBar: UISearchBar) { 
    searchActive = false; 
} 

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { 

    filtered = exercises.filter({ (text) -> Bool in 
     let tmp: NSString = text 
     let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch) 
     return range.location != NSNotFound 
    }) 
    if(filtered.count == 0){ 
     searchActive = false; 
    } else { 
     searchActive = true; 
    } 
    self.tableView.reloadData() 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

Antwort

0

Haben Sie versucht, vollständig IBOutlet zu entfernen? (Sowohl von Storyboard-Verbindungen als auch von deinem Code). Ich denke, das wird dein Problem lösen.