2016-10-08 1 views
0

abgegriffen Dann versuche ich, Aktion Blatt zu rufen, wenn Zelle entnommen wird, und das ist, was ichAktion Blatt angezeigt, wenn Tableview Zelle

tat
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 

     let alertController = UIAlertController(title: "Action Sheet", message: "What do you like to do", preferredStyle: .alert) 

     let okButton = UIAlertAction(title: "Done", style: .default, handler: { (action) -> Void in 
      print("Ok button tapped") 
     }) 

     let deleteButton = UIAlertAction(title: "Skip", style: .destructive, handler: { (action) -> Void in 
      print("Delete button tapped") 
     }) 

    alertController.addAction(okButton) 
} 

Wenn ich Zelle am tippen, wird Alarm-Controller zeigt, nicht auf. Was vermisse ich?

+1

Eine Methode kann nicht auf lokale Variablen zugreifen, die in anderen Methoden deklariert sind. Warum erstellen Sie den Alert-Controller in 'viewWillAppear'? – rmaddy

+0

Das ist richtig, sorry, ich muss meine Frage bearbeiten – Coder221

+0

@rmaddy bitte sehen Sie die bearbeitete Frage – Coder221

Antwort

4

Sie fast da sind, stellen Sie sicher, dass Sie Ihre deleteButton -action auch hinzufügen und die alertController mit present(alertController, animated: true, completion: nil)

+0

Verwendung des unaufgelösten Bezeichners 'yes' – Coder221

+0

Sorry, sollte natürlich 'true' sein anstelle von yes, gemischt Swift und Objective-C in meinem Kopf –

+0

Das tut es, danke – Coder221

2

Ihre Aktion Blatt präsentieren nicht zeigen, weil Sie es nicht präsentiert werden.

present(alertController, animated: true /** or false */, completion: nil) 
+0

Schätzen Sie Ihre Antwort – Coder221

Verwandte Themen