2016-10-28 23 views
-1

Ich habe einen Abschnitt von einer Szene (ctrl-drag) von einer Szene zur anderen im Storyboard erstellt. Ich habe auch eine IBAction erstellt, die mit der gleichen Taste verbunden ist. In der View-Steuerung, in der ich die IBAction implementiert habe, habe ich auch shouldPerformSegueWithIdentifier implementiert.Wann wird safePerformSegueWithIdentifier aufgerufen?

Wenn ich es shouldPerformSegueWithIdentifier ausführen, wird zuerst und Sekunde der IBAction genannt.

Allerdings habe ich ein altes Projekt mit dem gleichen Setup, wo der IBAction vor shouldPerformSegueWithIdentifier aufgerufen wird.

Gibt es eine bestimmte Reihenfolge, die diese beiden Methoden genannt werden? Gibt es eine Möglichkeit, diese Reihenfolge zu ändern?

In einem anderen ähnlichen Beitrag schlägt die Antwort vor, shouldPerformSegueWithIdentifier von der IBAction zu rufen. Ist das eine gute Übung?

Danke.

+1

Warum haben Sie sowohl eine IBAction als auch eine Sequenz von der Schaltfläche? Im Allgemeinen würden Sie nur das eine oder das andere tun. – dan

+0

Guter Punkt. Vielleicht kann ich einfach die IBAction entfernen. Ist es üblich, sallPerformSegueWithIdentifier von einer anderen Methode aus aufzurufen? Oder ist es eine dieser Methoden, die nur das System anruft? – Azul

+0

Es ist durchaus üblich, das Programm selbst aufzurufen, wenn Sie einen Code-Übergang auslösen, da das Aufrufen von 'performSegueWithIdentifier' aus dem Code nicht dazu führt, dass das System es für Sie aufruft. – dan

Antwort

0

Wenn ich es laufen shouldPerformSegueWithIdentifier zuerst genannt wird und zweitens die IBAction

Nur einer von ihnen genannt werden sollte. Die Tatsache, dass sie beide aufgerufen werden, bedeutet, dass Ihre Storyboard-Konfiguration falsch ist (in beide Fällen).

+0

Danke, ich bin mir nicht sicher, was in der Storyboard. Ich habe gerade Strg-Ziehen verwendet, um den Abschnitt und die IBAction zu erstellen. Ich dachte, es sei der Standard, warum man das macht. – Azul

+0

Entweder die Schaltfläche löst automatisch den Übergang aus (im Storyboard) oder ruft Code auf, um den Übergang durchzuführen (mithilfe der IBAction). Nicht beide. – matt

+0

Danke. Ich werde die IBAction entfernen. Ich denke es noch einmal, ich brauche es nicht wirklich. – Azul

Verwandte Themen