2010-12-22 4 views
0

Ich habe 2 Ansicht (Ansicht A und Ansicht B).Setzen Sie den Parameter auf Super-View nach disableModalViewControllerAnimated

In ViewA wenn ich eine Schaltfläche ich diesen Code ausführen berühren einen ViewB zu kippen: benötigen

[self dismissModalViewControllerAnimated: YES]; //here is my problem 

I:

viewB.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:viewB animated:YES]; 

Und jetzt, als ich kam zurück, um ViewA ich diesen Code verwenden setze dieselben Parameter auf viewA, wenn ich den Befehl file ausführe. Wie kann ich es tun?

EDIT Ich habe keine Lösung gefunden, und ich verwenden, um eine pushNavigation auf diese Weise:

FirstViewController *viewA = [self.storyboard instantiateViewControllerWithIdentifier:@"myView"]; 

// Effettuo il push alla view successiva 
[self.navigationController pushViewController:viewA animated:YES]; 
+0

Ich bin nicht ganz folgen, was Sie sagen. Welche Parameter möchten Sie auf viewA einstellen? Versuchen Sie, ViewA auch modal von viewB zu präsentieren? – Joe

+0

wahrscheinlich habe ich denselben Fehler, aber mein obiective ist, zum viewB zu drücken, wenn ich innen einen Knopf in viewA berühre. Jetzt setze ich in dieser Ansicht (viewB) denselben Parameter und wenn ich in eine Schaltfläche in viewB tippe, komme ich zurück zur AnsichtA, die denselben Parameter passiert. Wie kann ich es tun? – Dany

Antwort

0

Suche nach einem Delegaten Beispiel oder einfach NSNotificationCenter verwenden, um eine Nachricht von einer Ansicht zu einem anderen

senden

KlasseA:

@protocol myDelegate 

@interface ClassA : UIViewController { 

} 

@end 

@protocol myDelegate 
- (void)thingsDone:(id)someValues; 
@end 

ClassB:

#import "ClassA.h" 
@interface ClassB : UIViewController <myDelegate> { 

} 
@end 
0

Sie haben zwei Möglichkeiten:

1- Sie können die delegate pattern verwenden und registrieren ViewA als Delegatobjekt:

viewB.delegate = self; 
[self presentModalViewController:viewB animated:YES]; 

Und in ViewB Sie können Nachrichten an den Delegaten senden:

2- Sie können einen Zeiger auf viewA in viewB:

halten
viewB.viewA = self; 
[self presentModalViewController:viewB animated:YES]; 

Und dann können Sie Nachrichten an die ViewA direkt senden:

[viewA someMethod]; 
+0

Warum, wenn ich versuche, viewB.dellegate = self zu verwenden, existiert der Methoden-Delegat nicht für den viewB? – Dany

+0

Beziehen Sie sich auf diese Frage, um zu erfahren, wie Sie Delegierte erstellen und verwenden können: http://stackoverflow.com/questions/626898/how-do-i-create-delegates-in-objective-c – Hejazi