Мое приложение структурировано с контроллером центрального представления, который добавляет от 3 до 4 подвид к основному виду. В одном из дополнительных контроллеров представления я представляю камеру пользователю. Когда я увольняю сборщик изображений, каждое подзапрос, за исключением того, в котором я представляю камеру (контроллер вида), исчезает. Я думаю, это может быть связано с тем, как структурировано приложение и стек представления. Приложение отлично работает при запуске iOS 8 на iPhone и iOS 7 на iPad. У меня эта проблема, только когда я запускаю iOS 8 на iPad. Я убедился, что код соответствует документации Apple о том, как представить и убрать подборщик изображений. Вот код, используемый для представления подборщика изображений.ImagePicker удаление просмотров при увольнении iOS 8
-(IBAction)photoButtonPressed:(id)sender
{
// Prompt for camera or photo library
// Retrieve image and set it as this button's default image
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *imagePicker =
[[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObjects:
(NSString *) kUTTypeImage, nil];
imagePicker.allowsEditing = NO;
imagePicker.modalPresentationStyle = UIModalPresentationFullScreen; //play around with this
[self presentViewController:imagePicker animated:YES completion:nil];
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Camera not found" message:@"There is no camera available on this device." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
}
код используется, чтобы закрыть
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
CGSize scaleSize = CGSizeMake(1024.0f, 1280.0f);
UIImage *capturedImage;
// Handle a still image capture
capturedImage = (UIImage *) [info objectForKey:
UIImagePickerControllerOriginalImage];
[self dismissViewControllerAnimated:YES completion:nil];
if (capturedImage) {
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
photoData = UIImageJPEGRepresentation([capturedImage resizedImage:scaleSize interpolationQuality:kCGInterpolationHigh], 5);
photoEntity = nil;
[self.takePhotoButton setImage:[UIImage imageWithData:photoData ] forState:UIControlStateNormal];
if ([self isAnyButtonSelected] || ![_answerTextField.text isEqualToString:@""] || !_questionBoolean.hidden) {
[Tools enableControl:_saveButton];
}
} else {
newPhotoData = UIImageJPEGRepresentation([capturedImage resizedImage:scaleSize interpolationQuality:kCGInterpolationHigh], 5);
photoEntity = nil;
}
}
}
И здесь я пытался баловаться с родительскими представлениями и контроллерами в этом методе. Я смог заставить приложение вернуться к контроллеру центрального представления за вычетом текущего контроллера представления, который отвечает за съемку фотографий. Единственная проблема заключается в том, что прикосновение приложения отключено, и мне не хватает одного вида.
- (void) imagePickerControllerDidCancel: (UIImagePickerController *) picker
{
// [self willMoveToParentViewController:nil];
// [picker.view removeFromSuperview];
// [picker removeFromParentViewController];
[self dismissViewControllerAnimated:YES completion:nil];
}
Я собирался опубликовать фотографии, но в настоящее время я не могу, потому что я новичок в переполнении стека. Любая помощь будет оценена по достоинству. Благодаря!
Итак, приложение не использует доски объявлений, но использует xib-файлы. Это унаследованный код, и приложение было создано несколько лет назад. Существует несколько контроллеров с несколькими видами. Существует центральный контроллер, в котором все остальные контроллеры представлений добавляются к центральному виду.
[self.view addSubview:_catViewController.tableView];
[self.view addSubview:_listViewController.tableView];
[self.view addSubview:_queryViewController.view];
[self.view bringSubviewToFront:_queryViewController.view];
queryViewController - это место, где я фотографирую. Когда я увольняю, всякая точка зрения исчезает, кроме контроллера вида запроса, который, как считается, занимает весь экран (раньше он этого не делал). Дайте мне знать, если мне нужно добавить дополнительную информацию! Спасибо
Хм ... смотрит прямо на меня! Я бы не стал возиться с «removeFromSuperview» и т. Д. - так, что маршрут всегда кажется хуже! Можете ли вы описать свою структуру еще немного? У вас несколько контроллеров просмотра с несколькими видами? У вас есть переходы между ними? Раскадровка? Autolayout? –
Я обновил свой вопрос! –