Ich habe eine App, wo ich die Fotoauswahl (UIImagePickerController) anzeigen, aber nachdem der Benutzer es nur einzelne Berührungen löst arbeiten. Und ich glaube, ich kenne die Wurzel des Problems, aber ich weiß nicht, wie es zu lösen ... Bevor ich den modalen Dialog zeigen die Stapel während einer Berührung ist wie folgt:Nach dem Anzeigen und Verwerfen des Modal View Controllers UIImagePickerController sieht meine Cocos2d iPhone App nicht mehr mehrere Berührungen
... #3 0x00074de0 in -[EAGLView touchesBegan:withEvent:] at EAGLView.m:289 #4 0x30910f33 in -[UIWindow _sendTouchesForEvent:] ...
Aber nach zeigt und dann entfernen des modalen Dialog hat der Stapel diese zwei mysteriöse forwardMethod2 Anrufe:
... #3 0x00074de0 in -[EAGLView touchesBegan:withEvent:] at EAGLView.m:289 #4 0x3098dc95 in forwardMethod2 #5 0x3098dc95 in forwardMethod2 #6 0x30910f33 in -[UIWindow _sendTouchesForEvent:] ...
Hier ist der Code ich verwende den UIImagePickerController anzuzeigen und zu entfernen: Hinweise: 1. pickerViewController ist ein Mitglied dieser Klasse, die UIViewController erstreckt) 2. Director ist von Cocos2D und enthält nur eine Einzelansicht direkt im Root-Fenster namens openGLView angehängt, weshalb ich einen UIViewController für meine Bildauswahl erstellt habe.
-(void)choosePhoto: (id)sender{
UIImagePickerController *imagePickerController = pickerViewController.imagePickerController;
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.allowsImageEditing = YES;
UIView *theView = [[Director sharedDirector] openGLView];
UIView *pickerViewControllerView = pickerViewController.view;
[theView addSubview:pickerViewControllerView];
[pickerViewController presentModalViewController:imagePickerController animated:YES];
}
Und der Code das Dialogfeld zu schließen:
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)imagePickerController
{
// Dismiss the image selection
[pickerViewController dismissModalViewControllerAnimated:YES];
[pickerViewController.view removeFromSuperview];
// HERE... IS THERE MORE WORK TO BE DONE TO COMPLETELY REMOVE THE PICKER VIEW????
}
Es ist etwas sein muss ich bei der Säuberung der Picker Ansicht bin fehlt ... ist Hilfe sehr geschätzt :)
Sind Sie sicher, dass Sie die addSubView tun müssen? Ich denke nicht, dass das notwendig ist, und ich würde versuchen, es zu entfernen, um zu sehen, ob es das seltsame Verhalten verursacht. –
Ja, diesen Teil herauszunehmen zeigt niemals den Dialog. Da "self" kein viewController ist und meine App ViewController nicht für irgendwas verwendet, muss ich eine hinzufügen und sie zu meiner bestehenden Ansicht hinzufügen. –