Ich versuche Play/Pause und Stop-Buttons in einer Symbolleiste für eine einfache Stoppuhr-App zu implementieren. Siehe Code unter http://swiftstub.com/722226472 Ich habe seltsames Verhalten: zuerst macht der Play-Button nichts. Wenn ich auf die Stopp-Schaltfläche klicke, verschwindet das Symbol und die Wiedergabe/Pause schaltet um und funktioniert korrekt. Vorschläge? Ich verwende die neueste schnelle und XcodeEin anderes, aber spezifisches Play/Pause-Problem
Antwort
Ziel sollte selbst (nicht null) in diesen beiden Linien:
var playButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: nil, action: Selector("playButtonPressed"))
var pauseButton = UIBarButtonItem(barButtonSystemItem:
UIBarButtonSystemItem.Pause, target: nil, action: Selector("pauseButtonPressed"))
EDIT (basierend auf Kommentar): und Sie sollten diese Zeilen in eine init bewegen() weil Sie nicht initialisieren können, indem Sie self in einer var verwenden, die auf diese Weise initialisiert wird.
var playButton: UIBarButtonItem!
var pauseButton: UIBarButtonItem!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
playButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: Selector("playButtonPressed"))
pauseButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: Selector("pauseButtonPressed"))
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let toolBarItems = [playButton]
toolbar.setItems(toolBarItems, animated: false)
}
Da Sie nie diese in hinzugefügt zu beginnen, ich vermute, dass Sie nur eine andere Taste in Ihrem Storyboard haben, die etwas nicht angeschlossen ist. Dann ersetzen Sie sie beim ersten Anruf, um zu stoppen.
Ich habe nur zwei Elemente der Leiste: Play und Stop. Wenn ich nil zu self im Ziel ersetze, bekomme ich: (!) 'Kann Wert vom Typ 'NSObject ->() -> ViewController' nicht in den erwarteten Argumenttyp 'AnyObject' konvertieren? '' –
Ich habe mehr Info hinzugefügt - verschiebe die Var Initialisierung zu einem init(), so dass Sie auf self zugreifen können. –
Danke, Lou. Ich habe versucht, sie in eine init() zu verschieben, konnte aber nicht richtig herausfinden, wie das geht. - Tut mir leid, ich bin nur am Tag 3, Swift zu lernen. –
- 1. Regex ein spezifisches Muster
- 2. spezifisches Datumstringformat
- 3. Barcode in ein spezifisches Textfeld scannen
- 4. Dynamisch ein anderes Element scrollen, wenn ein anderes scrollt
- 5. Regex Übereinstimmung für ein bestimmtes Muster ohne ein spezifisches Muster
- 6. zeige ein anderes Formular
- 7. jquery filter spezifisches Element
- 8. Ein anderes Serialisierungsproblem
- 9. Regex spezifisches Zahlenformat
- 10. Wie überprüft man, ob ein Element ein spezifisches Klassenattribut enthält
- 11. Widget Entwicklung: Ich muss ein spezifisches Countdown-Widget entwickeln
- 12. Regex für spezifisches Tag
- 13. Wie ein anderes Fenster
- 14. Spezifisches Stylesheet für IE8
- 15. Laravel Rückkehr spezifisches Modellattribut
- 16. Docker-Container-spezifisches Festplattenkontingent
- 17. jquery - siehe spezifisches Formular
- 18. thymeleaf spezifisches Benutzerprofil anzeigen
- 19. Objekt in ein anderes kopieren
- 20. Schaltergehäuse (ein Gehäuse schneidet ein anderes Gehäuse)
- 21. Setzen Sie ein Fragment in ein anderes
- 22. Ein Programm, das ein anderes Programm erstellt
- 23. Spezifisches Formularformat in Django angeben
- 24. LoopBack acces ein anderes Modell
- 25. Ein Bild um ein anderes rotieren?
- 26. Django: Nur spezifisches Modellfeld bereinigen?
- 27. ein mehrdimensionales Array in ein anderes mehrdimensionales Array konvertieren, aber mit einer anderen Struktur
- 28. Dieses REGEXP echos eine Sache, aber tritt in MySQL ein anderes ein. Warum?
- 29. Wie mache ich ein JPA-Repository Transaktional aber nicht ein anderes?
- 30. implementiert ich ein Merkmal für ein anderes Merkmal kann aber Methoden nicht nennen von beiden Züge
Sie können Ihren Code mit den anderen vergleichen, die auf Blogs wie Ray veröffentlicht wurden, anstatt hier zu fragen. –
Bitte verlinken Sie nicht nach draußen - diese Seiten neigen dazu wegzugehen - setzen Sie den entsprechenden Code in die Frage. –