2016-05-21 10 views
0

私はtableviewのsearchdisplaycontrollerをセットアップしようとしています。テーブルビュー自体のためにiboutletを宣言するときにいくつかの問題が発生しています。添付されたスクリーンショットと私のコードです。どんな洞察も高く評価されました。searchdisplaycontrollerを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. 
} 

答えて

0

あなたが完全にIBoutletを削除しようとしたことがありますか? (ストーリーボード接続とコードの両方から)。私はこれがあなたの問題を解決すると思います。

関連する問題