2010-11-20 11 views
0

Ich bin neu in Iphone Entwicklung. Ich arbeite an einer Anwendung, die zwei Ansichten beinhaltet. Ich habe eine Kamera-Taste in Sicht, die die Standard-Iphone-Kamera öffnet. Dies wird durch den Code in der IBAction für Kamerataste in ViewOneController erreicht:Wie kann man die Ansicht wechseln, wenn die IPhone-Kamera zurückkehrt?

UIImagePickerController *picker = 
[[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.allowsEditing = NO; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
[self presentModalViewController:picker animated:YES]; 
[picker release]; 

View-Controller für die erste Ansicht ist auch die UIImagePickerControllerDelegate für die Kamera. Wenn das Bild geklickt wird und die Kamera-Ansicht kehrt in der Funktion imagePickerController: didFinishPickingWithMediaInfo, wo ich dies tun:

(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [picker dismissModalViewControllerAnimated:YES]; 
[self presentModalViewController:ViewTwoViewController animated:YES]; 
} 

Also im Grunde alles, was ich von viewone Klick zu erreichen versuchen, „Bild aufnehmen“ ---> Öffnen Kamera -> Nachdem die Kamera fertig ist, springen Sie zu zwei. Ganz ähnlich wie es in der flickr-App ist. Aber nachdem ich das Bild von der Kamera aufgenommen habe, kehrt meine App zu einer Ansicht zurück und die zweite Ansicht wird nicht angezeigt. Was fehlt mir hier?

Auch aus konzeptioneller Sicht denke ich, IOS hält einen Stapel von Ansichten für jede App. Wenn presentModalViewController aufgerufen wird, wird die Ansicht angezeigt und sie wird dem Stapel hinzugefügt. Wenn disfidenceModalViewController aufgerufen wird, wird die Ansicht aus dem Stapel entfernt und die übergeordnete Ansicht wird angezeigt. Ist das richtig?

Danke.

Antwort

0

Sie müssen wahrscheinlich den Aufruf von [self presentModalViewController: ViewTwoViewController animiert: YES] in viewWillAppear setzen, das aufgerufen wird, nachdem die Auswahlansicht entfernt wurde. Sie müssen den Anruf wahrscheinlich auch mit einem Häkchen umgeben, um viewTwo nur dann anzuzeigen, wenn zutreffend.

+0

Ich habe versucht den Code in Sicht wird angezeigt. Es funktioniert immer noch nicht. –

+0

So fand ich die Antwort von einem anderen Forum. Offenbar erlaubt Iphone es Ihnen nicht, zwei Ansichten in einer animierten Art und Weise zu wechseln. Also habe ich die [Picker entlassenModalViewControllerAnimated: YES] geändert; Linie zu [Picker failureModalViewControllerAnimated: NO]; im ursprünglichen Code und es hat funktioniert. Vielen Dank. –

Verwandte Themen