У меня есть этот код, который загружает новый UIView (из раскадровки) при нажатии кнопки. Функция goPressed запускается при нажатой кнопке и вызывает функцию selectImage. selectImage открывает UIImagePickerController и позволяет пользователю выбирать фотографию. После того, как пользователь выбрал фотографию, делегат didFinishPickingMediaWithInfo добавляет выбранное изображение в UIImageView.performSegueWithIdentifier не работает
В 'goPressed', после выполнения selectImage, он должен выполнять Segue, например, как // 1. Но ничего не происходит. performSegueWithIdentifier, похоже, не работает. И если я не вызываю [self selectImage] перед вызовом функции performSegueWithIdentifier, он работает. Вот код:
- (IBAction)goPressed:(id)sender {
[self selectImage];
[self performSegueWithIdentifier:@"lastView" sender:currentSender]; //1
}
-(void)selectImage
{
// Create image picker controller
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
// Set source to the camera
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
// Delegate is self
imagePicker.delegate = (id)self;
// Allow editing of image ?
imagePicker.allowsEditing=NO;
// Show image picker
[self presentModalViewController:imagePicker animated:YES];
}
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// Access the uncropped image from info dictionary
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[[picker presentingViewController] dismissModalViewControllerAnimated:YES];
lePreview.image= image;
}
Пожалуйста, помогите, почему performSegueWithIdentifier не работает? Надеюсь, у меня нет никакой информации, которая вам нужна.
Вы получили мою точку зрения, он работает, когда я установил dismissModalViewControllerAnimated: НЕТ ... но если я использую свой код, чтобы сохранить анимацию, XCode дает мне эту ошибку: «UIView, например, сообщения не объявлять метод с селектором Устранение ошибки: завершение « –
ok, дать новый код выстрела. Он обеспечивает небольшой тайм-аут, чтобы анимация могла пройти между сегментами. – CocoaEv
Ух, это уродливо! (а не ваше решение, но способ анимации segue вызывает эту проблему). Похоже, самый простой и чистый способ - отключить анимацию. Спасибо, +1 :) – Jimmy