presentModalViewController: Animated устарела в ios6


101

Я использую следующий код для средства выбора изображений. Но когда я запускаю его в симуляторе, у меня происходит утечка памяти, и я получаю предупреждение об presentModalViewcontroller:animatedустаревании в iOS6. Я тоже dismissModalViewController:animatedустарел. Я использую SDK 6.1.

Код для ImagePicker:

- (void)showAlbum:(id)sender { 
    imagePicker=[[UIImagePickerController alloc]init];
    imagePicker.delegate = self;
    imagePicker.allowsEditing =NO;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:imagePicker animated:YES];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
    //release picker
    [picker dismissModalViewControllerAnimated:YES];
}

Ответы:


216

Используйте эту строку и проверьте:

[self presentViewController:imagePicker animated:YES completion:nil];

1
Вместо этого: [self presentModalViewController: imagePicker animated: YES];
Vishal

8
и для увольнения используйте это: [self dismissViewControllerAnimated: ДА, завершение: ноль];
Vishal

Возникла такая же проблема с утечкой памяти, и приложение закроется
Ram

Откуда у вас проблема, значит в какой строке?
Vishal

Я получаю эту ошибку «UIApplicationInvalidInterfaceOrientation», причина: «предпочтительныйInterfaceOrientationForPresentation должен возвращать поддерживаемую ориентацию интерфейса!»
Ram

17
[[Picker presentingViewController] dismissViewControllerAnimated:YES completion:nil];

Вместо того

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

и

[self presentViewController:picker animated:YES completion:nil];

Вместо того

[self presentModalViewController:picker animated:YES];

2
Итак, теперь у нас есть PresentViewController, и мы не указываем, что контроллер представления должен быть модальным?
Септиади Агус

4

Как сказал Вишал

[self presentViewController:imagePicker animated:YES completion:nil];
[self dismissViewControllerAnimated:YES completion:nil];

убедитесь, что вы также добавили "завершение: ноль"


4
if ([self respondsToSelector:@selector(presentViewController:animated:completion:)])
{
    [self presentViewController:objSignupViewController animated:^{} completion:nil];
}
else
{
    [self presentModalViewController:objSignupViewController animated:YES];
}

2

Использование:

[self presentViewController:imagePicker animated:YES completion:nil];

А затем для модального использования увольнения:

[self dismissViewControllerAnimated:controller completion:nil];

или

[self dismissViewControllerAnimated:YES completion:nil];
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.