I am building with the release version of Xcode 7.0. No storyboards, just nib files.
I have a single UINavigationController created by the app delegate
In my case, in Swift 3, I had missed the code below after adding the action
presentViewController(theAlert, animated: true, completion: nil)
So, the working code is as below
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if (editingStyle == UITableViewCellEditingStyle.Delete) {
let title = "Delete ????"
let message = "Are you sure you want to delete this item?"
let theAlert = UIAlertController(title: title,
message: message,
preferredStyle: .ActionSheet)
let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
theAlert.addAction(cancelAction)
let onDelete = UIAlertAction(title: "Delete", style: .Destructive, handler: { (action) -> Void in
self.items.removeAtIndex(indexPath.row)
self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
})
theAlert.addAction(onDelete)
presentViewController(theAlert, animated: true, completion: nil)
}
}
//Note I was using a sample array
var items = ["iPhone", "iPad", "Mac"]