UIImagePickerController ничего не делает при использовании камеры после нажатия кнопки «Использовать» - PullRequest
0 голосов
/ 01 апреля 2010

код ниже.

Когда я нажимаю кнопку «Использовать» после фотографирования ... приложение перестает отвечать на запросы. Есть идеи, что я делаю не так? Метод addPlayer: вызывается при нажатии кнопки в представлении UIViewController.

Спасибо

- (IBAction) addPlayers: (id)sender{
    // Show ImagePicker
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;

    // If camera is available use it and display custom overlay view so that user can add as many pics
    // as they want without having to go back to parent view
    if([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
        imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

    } 
    else {
        imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    }

    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    // Grab original image
    UIImage *photo = [info objectForKey:UIImagePickerControllerOriginalImage];

    // Resize photo first to reduce memory consumption
    [self.photos addObject:[photo scaleToSize:CGSizeMake(200.0f, 300.0f)]];

    // Enable *PLAY* button if photos > 1
    if([self.photos count] > 1) btnStartGame.enabled = YES;

    // Update player count label
    lblPlayerCount.text = [NSString stringWithFormat:@"%d", [self.photos count]];

    // Dismiss picker if not using camera
    picker dismissModalViewControllerAnimated:YES];

}

1 Ответ

0 голосов
/ 10 января 2012

У меня была похожая проблема сегодня. Проблема была в том, что я переиздал переменную. Вот часть моего кода, которая вылетала:

UIImagePickerController *imagePicker = [[[UIImagePickerController alloc]init]autorelease];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
[self presentModalViewController:imagePicker animated:YES]

и затем:

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
  UIImage *image = [[info objectForKey:@"UIImagePickerControllerOriginalImage"]fixOrientation];
  [self performSelectorInBackground:@selector(uploadAPhoto:) withObject:image];

  [picker release];
  [self dismissModalViewControllerAnimated:YES];
}

единственное, что я сделал, это удалил [релиз выбора]; линия и теперь она работает просто отлично.

Глядя на ваш код, я бы сказал, что есть проблема с этой строкой:

picker dismissModalViewControllerAnimated:YES];

если это так в вашем проекте, то действительно странно, что он даже запускается, в начале строки отсутствует [[] И я пользуюсь

[self dismissModalViewControllerAnimated:YES];

Попробуйте использовать это.

Редактировать

Извините, не видел дату вопроса:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...