ImagePicker в поповере не скрывает - PullRequest
2 голосов
/ 11 апреля 2011

Я прочитал, что iPad должен использовать UIPopoverController для просмотра PhotoLibrary, однако я отредактировал код, чтобы сделать его, всплывающее окно показывает, но оно не скрывается, когда я выбираю картинку.

Я обнаружил, что он не достигает didFinishpickingMediaWithInfo.Я что-то пропустил?вот мой код

-(IBAction) ButtonClicked{

    ipc = [[UIImagePickerController alloc] init];
    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    ipc.delegate=self;
    popover = [[UIPopoverController alloc] initWithContentViewController:ipc];
    [ipc release];
    [popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 800.0, 400.0) 
                             inView:self.view
           permittedArrowDirections:UIPopoverArrowDirectionAny 
                           animated:YES];   
}

здесь:

-(void) imagePickerControllerDidCancel:(UIImagePickerController *)picker{
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    [picker release];
}

и здесь:

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

 // TempImage is a UIImage instance
    TempImg = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    //bgImage is a UIImageView instance and it's connected in the IB
    [bgImage setImage:TempImg];
    // Dismiss UIImagePickerController and release it
    [picker dismissModalViewControllerAnimated:YES];
    [picker.view removeFromSuperview];
    [picker release];
}

Мне действительно нужна чья-то помощь, я уже посмотрел каждое видео на YouTube,прочитал каждую статью в интернете и перепробовал практически все.Буду очень признателен за вашу помощь.

1 Ответ

6 голосов
/ 11 апреля 2011

Первая проблема заключается в том, что метод didFinishpickingMediaWithInfo написан неправильно, и поэтому он не будет вызван.Это должно быть didFinishPickingMediaWithInfo (заглавная буква P для комплектации).

Вторая проблема - вызов dismiss для родителя, иначе сборщик не скрывает всплывающее окно.Вместо этого попробуйте позвонить [popover dismissPopoverAnimated:YES];.

...