         return results.count
     }
     
+    override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
+        return headers[section]
+    }
+    
     override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
         return kHeightCell
     }

        tableView.deselectRowAtIndexPath(indexPath, animated: true)
        indexSelected = indexPath
        
        guard indexPath.section == 0 else {
            switch indexPath.section {
            case 1:
                performSegueWithIdentifier(kSegueIdListApps, sender: tableView)
            case 2:
                ImageHelper.sharedInstance.cleanCache()
            default:
                break
            }
            return
        }
        
        switch indexPath.row {
        case 0:
            performSegueWithIdentifier(kSegueIdEventKit, sender: tableView)
        case 1:
            performSegueWithIdentifier(kSegueIdGCD, sender: tableView)
        case 2:
            performSegueWithIdentifier(kSegueIdCommonCrypto, sender: tableView)
        default:
            break
        }
    }

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


}


    let kTagRemoveLabel = 101
    let kHeightCell: CGFloat = 55.0
    
    let headers = ["Information Access",  "Performance", "Security", "Miscellaneous", ""]
    let results = [["EventKit", "Social"], ["Grand Central Dispatch"], ["Common Crypto"], ["My Apps"], ["Clear Cache"]]
    var indexSelected: NSIndexPath?
    
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
