Logan
Logan

Reputation: 1127

Edit button does not have any functionality, no red circle with a minus appears on the left side of cells

I have looked at another question that was asking the exact same question as mine, but the answer told them to call the setEditing function (which I tried, and say later in the question). But I don't see how you could call this function only when the edit button is clicked. I suppose I could create my own BarButtonItem and run this method when my bar button item is clicked, but I figured this would be far easier since I need the basic functionality of the edit button.

I have a UIViewController that has a table on it named peersTable. When I click the edit button it switches to done, but nothing happens on the table. I have also added my own UITableViewRowActions and when I swipe to the left on the cells, my custom actions do show up.

Here is some of my code:

class PeerViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, ConnectionManagerDelegate {

@IBOutlet weak var peersTable: UITableView!
...

override func viewDidLoad() {
    ...
    peersTable.delegate = self
    peersTable.dataSource = self

    self.navigationItem.rightBarButtonItem = self.editButtonItem
    ...
}

I have also tried calling the peersTable.setEditing(true, animated: true) method myself, and in this case, the red minus does appear. I've never seen this issue before, so I don't understand why it's happening. Am I somehow setting the delegate wrong? Or possibly I'm doing something wrong since this is a regular View and not a TableView (even though I've done this before in a previous project).

Thanks in advance! If you need any more information let me know!

Upvotes: 0

Views: 385

Answers (1)

Swifty
Swifty

Reputation: 3760

Since this is a not a TableViewController it won't automatically set your tableView to editing mode when you press the edit button.

You need to override setEditing method so you can set the tableView to editing mode.

Add this to your ViewController class:

override func setEditing(_ editing: Bool, animated: Bool) {
    super.setEditing(editing, animated: animated)
    peersTable.setEditing(editing, animated: animated)
}

Upvotes: 2

Related Questions