2017-06-12 4 views
0

Ich habe dieses Problem in den Posts hier angesehen, kann aber meinen Fehler nicht finden.Unroll-Segment kehrt zum falschen Aufrufer zurück

Ich habe VC1, die bei Bedarf zu VCDetail seques.

Ich habe auch eine vc2, die bei Bedarf zu vcDetail wechselt.

vc1 und vc2 sind unter einem Tab-Controller organisiert. vcDetail ist nicht.

vc1 zu vcDetail wird im Storyboard festgelegt und auf Aktion ausgelöst.

vc2 zu vcDetail-Segment wird im Storyboard festgelegt und auf Aktion ausgelöst.

VcDetail-Schaltfläche wird zum Beenden "verdrahtet". Verwenden der 'ausgewählten' Methode myUnwindAction.

myUnwindAction ist sowohl in vc1 als auch in vc2 implementiert. identisch. auch in .h-Dateien definiert. (und wenn ich auf den Abwicklungsabschnitt von vcDetail klicke, leuchten sowohl vc1 als auch vc2 im Storyboard-Editor auf).

Problem: mein vcDetail wickelt sich nie zurück zu vc2. Es scheint nur immer zu vc1 zu entspannen.

Szenarien:

- im Register vcLogin präsentiert.

--tab zu vc1, übergang zu vcDetail. Entspannen Sie sich in VC1. OK.

--tab zu vc2, übergang zu vcDetail. Abwickeln auf VC1 - falsch. müssen zum Aufrufer zurückkehren, vc2.

oder:

auf Registerkarte vcLogin --presented.

--Tab zu VC1, nicht überleiten.

--tab zu vc2, übergang zu vcDetail. Abwickeln auf VC1 - falsch. müssen zum Aufrufer zurückkehren, vc2.

Ich stecke fest. Wie kehre ich zum richtigen vc Anrufer zurück? Es ist so, als würde die Abwicklung unabhängig von der Quelle immer zu vc1s "myUnwindAction" zurückkehren. Als ob vc2 nicht existierte. Die Abwicklungsmethoden sind jedoch vorhanden und der Storyboard-Editor scheint zu wissen, dass beide an myUnwindAction teilnehmen (daher die Hervorhebung erwähnt).

+0

Ich habe noch keine vollständige Antwort; aber es scheint, der Übeltäter ist der Tab-Controller. Wenn ich die VCs vom Tab-Controller entferne, verhalten sich die Abwicklungen korrekt ... Ich werde weiter jagen, weil ich meine Benutzeroberfläche mit Registern organisieren möchte ... –

Antwort

0
You have to create different unwind segue for each Tab's View Controller 
create unwind method in VC2 like 
-(IBAction)unwindFromvcDetailToVC2:(UIStoryboardSegue*)sender; 

create unwind method in VC1 like 
-(IBAction)unwindFromvcDetailToVC1:(UIStoryboardSegue*)sender; 

set Both unwindSegue through Storyboard 

Depend on ur condition/requirement call 
[self performSegueWithIdentifier:@"unwindFromvcDetailToVC2" sender:nil]; 

or 

[self performSegueWithIdentifier:@"unwindFromvcDetailToVC1" sender:nil];