presentModalViewController: Animated está en desuso en ios6


101

Estoy usando el siguiente código para un selector de imágenes. Pero cuando lo ejecuto en el simulador, tengo una pérdida de memoria y recibo una advertencia de que presentModalViewcontroller:animatedestá obsoleto en iOS6. También me dismissModalViewController:animateddesaprueban. Estoy usando el SDK 6.1.

Código para 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];
}

Respuestas:


216

Use esta línea y verifique:

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

1
En lugar de esto: [self presentModalViewController: imagePicker animado: YES];
Vishal

8
y para descartar, use esto: [autodespedidoViewControllerAnimated: YES completado: nulo];
Vishal

Conseguir mismo problema de pérdida de memoria y la aplicación se cerrará
Ram

¿Dónde tienes problemas significa en qué línea?
Vishal

Recibo este error 'UIApplicationInvalidInterfaceOrientation', motivo: 'favoriteInterfaceOrientationForPresentation debe devolver una orientación de interfaz compatible!'
Ram

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

En vez de

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

y

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

En vez de

[self presentModalViewController:picker animated:YES];

2
¿Entonces ahora tenemos presentViewController y no especificamos que el controlador de vista debería ser modal?
Septiadi Agus

4

Como mencionó Vishal

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

asegúrese de haber agregado "finalización: nulo" también


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

2

Utilizar:

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

Y luego para su uso modal de despido:

[self dismissViewControllerAnimated:controller completion:nil];

o

[self dismissViewControllerAnimated:YES completion:nil];
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.