У меня есть вид с некоторыми полями (имя, цена, категория) и сегментированный элемент управления, плюс эта кнопка для съемки.
Если я попробую это на симуляторе (без камеры), он будет работать правильно: я могу выбрать изображение из рулона камеры, отредактировать его и вернуться к представлению, в котором будут показаны все поля с их содержимым.
Но на моем iphone, когда я выбираю изображение после редактирования и возвращаюсь к представлению, все поля пусты, кроме UIImageView.
Я также пытался сохранить содержимое полей в переменных и вставил их обратно в методе "viewWillApper", но приложение вылетает.
Начните думать, что, возможно, что-то не так, методы ниже
EDIT
Я нашел решение здесь . Я определил новый метод для класса UIImage. (перейдите по ссылке для получения дополнительной информации).
Затем я работал над рамкой UIImageView, чтобы приспособиться к новому измерению, в альбомной или портретной ориентации.
-(IBAction)takePhoto:(id)sender {
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imgPicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
} else {
imgPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
}
[self presentModalViewController:self.imgPicker animated:YES];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
NSDate *date = [NSDate date];
NSString *photoName = [dateFormatter stringFromDate:date];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUs erDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
imagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", photoName]];
UIImage *picture = [info objectForKey:UIImagePickerControllerOriginalImage];
// ---------RESIZE CODE--------- //
if (picture.size.width == 1936) {
picture = [picture scaleToSize:CGSizeMake(480.0f, 720.0f)];
} else {
picture = [picture scaleToSize:CGSizeMake(720.0f, 480.0f)];
}
// --------END RESIZE CODE-------- //
photoPreview.image = picture;
// ---------FRAME CODE--------- //
photoPreview.contentMode = UIViewContentModeScaleAspectFit;
CGRect frame = photoPreview.frame;
if (picture.size.width == 480) {
frame.size.width = 111.3;
frame.size.height =167;
} else {
frame.size.width = 167;
frame.size.height =111.3;
}
photoPreview.frame = frame;
// --------END FRAME CODE-------- //
NSData *webData = UIImagePNGRepresentation(picture);
CGImageRelease([picture CGImage]);
[webData writeToFile:imagePath atomically:YES];
imgPicker = nil;
}
Теперь у меня новый выпуск! Если я делаю снимок в альбомной ориентации и пытаюсь сделать еще один в портретной ориентации, приложение вылетает. Должен ли я что-то выпустить?