Advertisement
Guest User

Untitled

a guest
Jul 6th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. class FeastSearchTableViewController: UITableViewController, UISearchResultsUpdating {
  2.  
  3. var feastEntries = [FeastEntry]()
  4.  
  5. var filteredFeasts = [FeastEntry]()
  6.  
  7.  
  8. /* let tableData = ["One","Two","Three","Twenty-One"]
  9. var filteredTableData = [String]()*/
  10. var resultSearchController = UISearchController()
  11.  
  12. override func viewDidLoad() {
  13. super.viewDidLoad()
  14.  
  15. self.resultSearchController = ({
  16. let controller = UISearchController(searchResultsController: nil)
  17. controller.searchResultsUpdater = self
  18. controller.dimsBackgroundDuringPresentation = false
  19. controller.searchBar.sizeToFit()
  20.  
  21. self.tableView.tableHeaderView = controller.searchBar
  22.  
  23. return controller
  24. })()
  25.  
  26. self.feastEntries = [FeastEntry(category:"Chocolate", name:"chocolate Bar"),
  27. FeastEntry(category:"Chocolate", name:"chocolate Chip"),
  28. FeastEntry(category:"Chocolate", name:"dark chocolate"),
  29. FeastEntry(category:"Hard", name:"lollipop"),
  30. FeastEntry(category:"Hard", name:"candy cane"),
  31. FeastEntry(category:"Hard", name:"jaw breaker"),
  32. FeastEntry(category:"Other", name:"caramel"),
  33. FeastEntry(category:"Other", name:"sour chew"),
  34. FeastEntry(category:"Other", name:"gummi bear")]
  35.  
  36. // Reload the table
  37. self.tableView.reloadData()
  38.  
  39. }
  40.  
  41. override func didReceiveMemoryWarning() {
  42. super.didReceiveMemoryWarning()
  43. // Dispose of any resources that can be recreated.
  44. }
  45.  
  46.  
  47. override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
  48. return 1
  49. }
  50.  
  51. override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  52. // 2
  53. if (self.resultSearchController.active) {
  54. return self.filteredFeasts.count
  55. }
  56. else {
  57. return self.feastEntries.count
  58. }
  59. }
  60.  
  61.  
  62. override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  63. let feasts = self.feastEntries[indexPath.row]
  64.  
  65. let cell = tableView.dequeueReusableCellWithIdentifier("TimelineCellPhoto") as! TimelineCell
  66.  
  67. cell.typeImageView.image = UIImage(named: "timeline-photo")
  68. cell.profileImageView.image = UIImage(named: "profile-pic-2")
  69. cell.nameLabel.text = feasts.name
  70. cell.photoImageView?.image = UIImage(named: "dish")
  71. cell.dateLabel.text = "2 mins ago"
  72. cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator
  73. return cell
  74.  
  75. }
  76.  
  77. override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
  78. self.performSegueWithIdentifier("feastDetail", sender: tableView)
  79. }
  80.  
  81. override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
  82. if segue.identifier == "feastDetail" {
  83. let candyDetailViewController = segue.destinationViewController as! UIViewController
  84.  
  85. }
  86. }
  87.  
  88. func updateSearchResultsForSearchController(searchController: UISearchController)
  89. {
  90. filteredFeasts.removeAll(keepCapacity: false)
  91.  
  92. let searchPredicate = NSPredicate(format: "category CONTAINS[c] %@", searchController.searchBar.text)
  93. //let array = (feastEntries as NSMutableArray).filteredArrayUsingPredicate(searchPredicate)
  94. /* let array = (feastEntries as NSArray).filteredArrayUsingPredicate(searchPredicate)
  95. filteredFeasts = array as! [String]
  96. */
  97. self.tableView.reloadData()
  98. }
  99.  
  100. }
  101.  
  102. struct FeastEntry {
  103. let category : String
  104. let name : String
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement