Swift - call @IBAction-Methode viewDidLoad ohne parameter
@IBAction func getNewPhotoAction(sender: AnyObject) {
println("getNewPhotoAction")
}
override func viewDidLoad() {
super.viewDidLoad()
self.getNewPhotoAction(sender: AnyObject) //Error
}
Ich nur telefonieren will getNewPhotoAction
IBAction-Methode in viewDidLoad
.
Welche parameter geben Sie in dieser Zeile -> self.getNewPhotoAction(?????)
?
Habe ich keine parameter. Ich brauche nur zu rufen.
Benutzte ich in Objective-C Stil:
[self getNewPhotoAction:nil]
aber ich weiß nicht, Swift-Stil.
- Pass selbst als AnyObject ich.e selbst.getNewPhotoAction(selbst -)
- Fügen Sie keine blockquotes für Dinge, die sind nicht code. Und wenn Sie Sie Bearbeiten, vergessen Sie nicht richtig zu nutzen Substantive und um Fehler zu beheben. Nur Bearbeitung das hinzufügen der name der Sprache in blockquotes ist nicht akzeptabel. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den parameter
sender
gibt, die dem Aufruf der action-Methode.Beim Aufruf von
viewDidLoad
übergebenself
zu.Durch die Art und Weise, wenn die
sender
parameter dergetNewPhotoAction
- Methode gar nicht verwendet, wird der parameter-name kann weggelassen werden.Konnte man immer erstellen Sie eine separate Funktion, die Sie aufrufen, in Ihrem viewDidLoad oder in Ihrem IBAction
Wenn Sie noch brauchen, um die Referenz der
UIButton
oder was auch immer ist, sendet die Aktion und möchten, rufen Sie es aus dem code zur gleichen Zeit - Sie können dies auch tun:onNext(UIButton())
Verschwenderisch, aber weniger code.
Braucht man eigentlich nicht passieren
any object
überhaupt. Wenn Sie haben keine Notwendigkeit, diesender
, dann deklarieren Sie diefunction
ohne es so:Und verwenden Sie es wie diese:
Müssen Sie möglicherweise re-connect die Steckdose in
interface builder
wenn Sie diese änderung vornehmen (entfernen Sie es und fügen Sie es wieder), wenn diese Methode im Zusammenhang mit einer Veranstaltung ininterface builder
.Swift 4.2
Da Sie nicht jedem Absender, mit der hand über
nil
.getNewPhotoAction
s Signatur wird geändert werden müssen, umAnyObject?
wenn Sie möchten, übergeben Sie null.