2010-05-12 11 views
5

ich diesen Code bin mit einem popover öffnen mit imagepickerIpad UIImagePickerController und UIPopoverController Fehler

-(IBAction)photosAction:(id)sender 
{ 
// dismiss any left over popovers here 
UIImagePickerController* picker = [[UIImagePickerController alloc] init]; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
picker.delegate = self; 

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker]; 
self.popoverController = popover;   
popoverController.delegate = self; 
[popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
[picker release]; 

Aber dies führt zu diesem Fehler Anfrage Mitglied ‚popoverController‘ in etwas keine Struktur oder Union und diesen Fehler 'PopoverController' nicht deklariert (erste Verwendung in dieser Funktion).

Auch ich möchte das Popover zu schließen, wenn das Bild ausgewählt ist.

Welchen Code sollte ich in die folgende Funktion einfügen, um das Popover zu schließen, sobald das Bild ausgewählt ist.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

Danke für die Hilfe!

Antwort

7

Dieser Fehler wurde verursacht, weil meine Funktion eine bar-Schaltfläche erfordert und ich eine normale ui-Schaltfläche verwendete.

+0

http://mobiforge.com/designing/story/using-popoverview-ipad-app-development – nishantcm

+0

Ich habe meinen Kopf auf das gleiche Problem geschlagen. Gibt es eine Chance, dass du deinen Code posten kannst? Haben Sie die Benutzeroberfläche geändert, um einen Balkenschaltknopf zu verwenden, oder den Code ändern? – Boeckm

7

Der Fehler bedeutet, dass popoverController im View-Controller nicht deklariert wurde. Sie müssen sie an die Schnittstelle als Ivar hinzufügen und Eigentum (es ist nicht eingebaut):

@interface ... { 
    ... 
    UIPopoverController *popoverController; 
} 
@property (nonatomic, retain) UIPopoverController *popoverController; 
@end 

Bei der Implementierung, fügen Sie den @synthesize, setzen Sie ihn auf Null in ViewDidUnload, und lassen Sie in dealloc.

Um das Popover zu verwerfen, rufen Sie dismissPopoverAnimated:.

+0

Danke, das die Fehler behoben. Aber wenn ich auf die Schaltfläche klicke, die das Popover laden soll, bekomme ich diese Fehler in der Konsole. *** - [UIRoundedRectButton Ansicht]: Unbekannter Selektor an Instanz gesendet 0x4d1e140 app aufgrund nicht abgefangene Ausnahme 'NSInvalidArgumentException', Grund beenden: ‚*** - [UIRoundedRectButton Ansicht]: Unbekannter Selektor zum Beispiel 0x4d1e140 – nishantcm

+0

gesendet Welche Maßnahmen hast du dich für den button click entschieden? Zeigen Sie den Code, der die Schaltfläche erstellt. Stellen Sie sicher, dass in addTarget mit "colors at end" "photosAction:" angegeben ist. Wenn die Schaltfläche in IB erstellt wird, überprüfen Sie die Verbindung für das Ausbessern. – DyingCactus

+0

IBOutlet UIButton * selectImageBtn; @property (nicht atomisch, beibehalten) IBOutlet UIButton * selectImageBtn; @synthesize selectImageBtn – nishantcm

0

versuchen, diesen Code verwenden:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
imagePicker.delegate = self; 
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; 
[popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 400.0, 400.0) 
         inView:self.view 
     permittedArrowDirections:UIPopoverArrowDirectionAny 
         animated:YES]; 
Verwandte Themen