Verwenden von UIImagePickerController in UIView

8

Ich habe Knopf, der, wenn ich klicke, die Kamera anzeigt (funktioniert tadellos)

%Vor%

Nach dem ich ein Bild machen kann, usw., - Aber wenn ich auf "verwenden" klicke: nichts passiert hier ist meine Methode: Die Bildauswahl wird nicht abgelehnt: die Anwendung tut einfach nichts, ich versuche die zu nehmen Image Ich habe es gerade aufgenommen und in einem CGRect auf dem Bildschirm angezeigt.

%Vor%

Auch wenn ich die Cancel-Taste drücke, ohne ein Bild zu machen, lässt sich der imagePicker (Kamera-Interface) nicht selbst ablehnen

Jede Hilfe, Beratung oder Anleitung wäre sehr willkommen.

    
Taskinul Haque 21.06.2013, 09:50
quelle

6 Antworten

4

Ist die Methode getPhoto: in der Unterklasse UIView ?

Wenn das der Fall ist, dann wäre es besser:

  1. Verschieben Sie den Code getPhoto: vollständig aus der Unterklasse UIView und fügen Sie ihn in den übergeordneten Ansichtscontroller der Ansicht ein.

  2. Machen Sie Ihre UIButton zu einer Eigenschaft Ihrer UIView: @property (nonatomic, strong) UIButton *myButton;

  3. Setzen Sie in Ihrem View-Controller das Ziel & amp; Aktion wie folgt:

    %Vor%
  4. Rufen Sie schließlich in Ihrer getPhoto: -Methode [self presentViewController:imagePicker animated:YES completion:NULL];

  5. auf
  6. Ihr Code - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info sollte auch in den View-Controller gehen und self.patientImage.image = chosenImage; in myView.patientImage.image = chosenImage;

  7. ändern
Vinny Coyne 23.06.2013, 23:10
quelle
5

Sie sollten nicht die " addSubview " Sache dort oben tun aber stattdessen:

%Vor%     
Michael Dautermann 21.06.2013 09:57
quelle
5

Anstatt den Picker als Unteransicht hinzuzufügen, sollten Sie den Picker zu einem UIPopoverController hinzufügen.

Sie können es dann in Ihrer Unterklasse UIView anzeigen, indem Sie die Popover-Methode presentPopoverFromRect:inView:permittedArrowDirections:animated: wie folgt verwenden:

%Vor%

Sie können dann die Delegate-Methoden verwenden, um das Popover mit:

zu schließen %Vor%

Dies ist erforderlich für die offiziellen Dokumente :

  

Die Tabelle zeigt das auf dem iPad an, wenn Sie einen Quellentyp von UIImagePickerControllerSourceTypePhotoLibrary oder angeben    UIImagePickerControllerSourceTypeSavedPhotosAlbum , du musst präsentieren   der Bilderwähler mit einem Popover - Controller, wie in beschrieben   "Präsentieren und Beenden des Popover" in der UIPopoverController-Klasse   Referenz. Wenn Sie versuchen, einen Bilderwähler modal darzustellen   (Vollbild) für die Auswahl zwischen gespeicherten Bildern und Filmen, das System   löst eine Ausnahme aus.

     

Auf iPad, wenn Sie einen Quellentyp angeben    UIImagePickerControllerSourceTypeCamera , Sie können das Bild präsentieren   Picker modal (Vollbild) oder mit einem Popover. Aber Apple   empfiehlt, dass Sie die Kameraoberfläche nur im Vollbildmodus darstellen.

    
lnafziger 28.06.2013 01:28
quelle
1

Ich weiß nicht, warum die Abbrechen-Taste nicht funktioniert. Wenn Sie diese Änderung vornehmen, wird das Bild ausgewählt, auf das Sie klicken.

Wenn Sie ein Ereignis abbrechen möchten, fügen Sie es hinzu, indem Sie das benutzerdefinierte UIBarButton erstellen und es hinzufügen.

%Vor%     
Arun 24.06.2013 07:50
quelle
1

Versuchen Sie:

%Vor%     
user754905 28.06.2013 01:09
quelle
-1

Entfernen Sie [self.addSubView:imagePicker.view]; und stattdessen

[self presentViewController:imagePicker animated:YES completion:NULL];

Sie weisen die Variable picker zurück, obwohl picker nicht definiert ist. Stattdessen setzen Sie:

[self dismissModalViewControllerAnimated:YES completion:NULL]; und stellen Sie sicher, dass es am Ende Ihrer Methode ist.

    
Milo 21.06.2013 09:59
quelle