Can anyone see why in the world didSelectRowAtIndexPath would not be called? I have triple checked by delegate both in the code and in storyboard.
class AddCard: UIViewController,UIPopoverPresentationControllerDelegate, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var cardView: UIView! @IBOutlet weak var tableView: UITableView! let tableItems = ["Background Color","Background Image","Font Style","Font Color"] let cellID = "cell" override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func setBackgroundColor (_ color: UIColor) { cardView.backgroundColor = color } func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return tableItems.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath as IndexPath) let row = indexPath.row cell.textLabel?.text = tableItems[row] return cell } func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath) { tableView.deselectRow(at: indexPath as IndexPath, animated: true) print(indexPath.row) let row = indexPath.row switch(row){ case 0: let popoverVC = storyboard?.instantiateViewController(withIdentifier: "colorPickerVC") as! ColorPickerViewController popoverVC.modalPresentationStyle = .popover popoverVC.preferredContentSize = CGSize(width: 284, height: 446) if let popoverController = popoverVC.popoverPresentationController { popoverController.sourceView = self.view popoverController.sourceRect = CGRect(x: 0, y: 0, width: 85, height: 30) popoverController.permittedArrowDirections = .any popoverController.delegate = self popoverVC.delegate = self } present(popoverVC, animated: true, completion: nil) break default: break } } }
didSelectRowAtIndexPath:to the Swift 3 one. From the doc:optional func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath), notice the_thedidSelectRowAtvsdidSelectRowAtIndexPath, like the other one you updated, but not this one. Remove the line and let XCode do the autocompletion. Else, you can just replace it with the one from the doc.