У меня есть UIImagePicker
, который продолжает появляться после того, как я выбрал изображение. Мой код проверяет камеру, а затем отображает UIImagePicker
на основании того, что в симуляторе нет камеры.UIImagePicker появляется после выбора изображения
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.imagePicker = [[UIImagePickerController alloc] init];
self.imagePicker.delegate = self;
self.imagePicker.allowsEditing = YES;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
else {
self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
self.imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeImage, nil];
[self presentViewController:self.imagePicker animated:NO completion:nil];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self clear];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imageView.image = chosenImage;
[self dismissViewControllerAnimated:YES completion:nil];
}
Нужно ли мне принудительно перезагрузить мой первоначальный вид? Есть ли более разумный способ сделать это?
EDIT
Я добавил кнопку Bar в панели навигации, и им стрельбы мой код на это действие. Это устранило проблему и кажется лучшим способом сделать это.
Ударьте мой ответ не менее чем за 30 секунд! :) –
Хорошо, что мы согласны с решением! –