In Swift könnten Sie tun: als @Gaurav Singh in seiner Antwort vorgeschlagen
Schritt 1: Fügen Sie einen Übergang von ViewControllerA zu ViewControllerB ein. Das Segment sollte von ViewControllerA selbst starten und nicht von einem Steuerelement (wie Button) darin.
Schritt 2: Geben Sie segue einen eindeutigen Bezeichner im Storyboard. Beispiel: seageFromAtoB
Schritt 3: In Ihrem ViewControllerforA.swift schreiben:
if(condition == true) {
self.performSegueWithIdentifier("seageFromAtoB", sender: self)
}
Wenn Sie eine bestimmte Aufgabe in einem anderen Thread
ausführen dann performSegueWithIdentifier
verwendet, kann eine Ausnahme auslösen.
Wenn Sie diesen Fehler erhalten, dann sollten Sie verwenden:
if(condition==true){
NSOperationQueue.mainQueue().addOperationWithBlock {
self.performSegueWithIdentifier("seageFromAtoB", sender: self)
}
}
Dies wird segue Umleitung in Haupt Thread
auszuführen.
Hoffnung diese Hilfe für jemanden für Swift Option suchen
Es dein arbeitete für mich, ich habe eine conditionall segue von einem UITableViewCell, weil einige andere Zellen eine Ansicht und anderen Zellen zu zeigen, hat ... Die Sache ist dass, wenn ich vom Push-Segment zurückkomme, es den Fokus verloren hat und die Ansicht zurücksetzt, kommt es nicht zurück zu der Zelle, die die Aktion gestartet hat. Ich habe eine Tabellenansicht mit einem segmentierten Steuerelement, das zwischen 2 Datenquellen wechselt. Wenn ich aus einer uitableviewcell mit dem zweiten Index des segmentierten Steuerelements wechsle, wenn ich vom Segment zurückkomme, startet es die Ansicht mit dem ersten Index am segmentierten Steuerelement ... – fguespe
@fguespe Sie fragen nach einer Lösung für das Problem oder ist es ein allgemeiner Kommentar. –
ja, ich brauche eine lösung, aber ich bin ein bisschen fortgeschritten und ich verstehe, ist nicht schuld an der bedingten überfahrt. für normale Übergänge passiert. Das Problem ist das segmentierte Steuerelement, das nach dem Index sucht, wenn es zurückkommt, aber es zeigt die ersten Segmentdaten an. – fguespe