2016-04-27 15 views
0

Ich habe eine firstViewController eingebettet in einem firstNavigationController, die einen modalen Übergang zu einem neuen secondViewController in einem anderen secondNavigationController eingebettet hat. Dieser neue Controller führt eine Abwickelstation segue zurück zum firstViewControllerUnwind Segue geht zurück zu weit

secondViewController:

- (void) cancelAction{ 
    [self performSegueWithIdentifier:@"backHoney" sender:self]; 
} 

firstViewController:

- (IBAction)backToHoney:(UIStoryboardSegue *)sender{ 
} 

Das funktioniert aber es gibt einen Fall, wenn ein anderer viewC in einem eingebetteten Nav hat einen modalen Übergang zum firstViewController. Wenn der Benutzer von diesem viewC zu dem firstViewController geht, dann zu dem secondViewController und versucht, zu dem ersten zurückzurollen, wickelt es den ganzen Weg zurück zu viewC anstelle des ersten ab.

Antwort

0

sollten Sie popToviewController anstelle von unwing segue verwenden. Sie können zu jedem ViewController des Navigation Stacks gehen.

zum Beispiel

NSArray *viewArr = [self.navigationController viewControllers]; //returs viewcontroller array 
[self.navigationController popToViewController:[viewArr objectAtIndex:0] animated:YES]; 
//you can pass different index to go to differen VC 

Sie können meine this answer für weitere Einzelheiten verweisen.

Hoffnung diese :)

+0

Ich brauche Hilfe wird von 'secondNavController' zu' firstNavController' zu entspannen. Auch Daten weitergeben. Ist das nicht nur für die Navigation über alle ViewController innerhalb desselben NavControllers gedacht? @Lion – Peter

+0

können Sie Delegate und Protokoll für die Weitergabe der Daten verwenden. Es gibt nichts zwingendes zu verwenden abwickeln. – Lion