Frage

Ich versuche, so schnell wie eine meiner Ansicht-Controller lädt ein UIImagePickerController zu zeigen. Ich würde dazu gerne ohne dass der Benutzer eine Taste drücken müssen, damit ich die viewDidLoad Methode overrode wie folgt:

- (void)viewDidLoad {
    [super viewDidLoad];

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePickerController.allowsImageEditing = YES;
    imagePickerController.delegate = self;    
    [self presentModalViewController:imagePickerController animated:YES];
    [imagePickerController release];
}

Dies kompiliert und ausgeführt, aber wenn der View-Controller das Bild Picker geladen wird, wird nicht angezeigt. Dieser Code funktioniert gut, wenn ich es auf ein Ereignis einer Schaltfläche zum Beispiel befestigen. Irgendwelche Ideen?

Danke.

War es hilfreich?

Lösung

Ich hatte das gleiche Problem, aber es gelöst. Versuchen Sie es mit

-(void) awakeFromNib {

}

Es wird erst unmittelbar nach dem alles anderen Lasten.

Andere Tipps

Versuchen Sie den Code setzen in

-(void)viewDidAppear

Das läuft auch jedes Mal, wenn der Blick allerdings auf dem Bildschirm angezeigt wird (einschließlich wenn es angezeigt wird, nachdem Sie die UIImagePicker entlassen), so dass Sie möglicherweise einen BOOL-Wert hinzufügen müssen, um es nur beim ersten Mal zeigt es geschehen zu lassen, oder wenn Sie will es (also nicht nach einer modalen Ansicht Entlassung).

Es scheint, dass viewDidLoad zu früh ist, PresentModalViewController zu verwenden: animierte :. Ich würde sugget eine One-Shot-Timer abzweigen Iteration des Verfahrens ab dem nächsten Lauf Schleife aufzurufen:

[NSTimer
 scheduledTimerWithTimeInterval:0
 target:self
 selector:@selector(onLoadTimer:)
 userInfo:nil
 repeats:NO];

fügen Sie die folgende Methode:

- (void)onLoadTimer:(id)unused
{
    [self presentModalViewController:imagePickerController animated:YES];
    [imagePickerController release];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top