presentModalViewController: Animated è deprecato in ios6


101

Sto usando il seguente codice per un selettore di immagini. Ma quando lo presentModalViewcontroller:animatedeseguo nel simulatore, ho una perdita di memoria e ricevo un avviso di deprecazione in iOS6. Inoltre vengo dismissModalViewController:animateddeprecato. Sto usando l'SDK 6.1.

Codice per 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];
}

Risposte:


216

Usa questa linea e controlla:

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

1
Al posto di questo: [self presentModalViewController: imagePicker animated: YES];
Vishal

8
e per dismiss utilizzare questo: [self dismissViewControllerAnimated: YES completamento: nil];
Vishal

Ottenendo lo stesso problema di perdita di memoria e l'app si chiuderà
Ram

Dove stai ottenendo il problema significa in quale linea?
Vishal

Ricevo questo errore "UIApplicationInvalidInterfaceOrientation", motivo: "preferredInterfaceOrientationForPresentation deve restituire un orientamento dell'interfaccia supportato!"
Ram

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

Invece di

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

e

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

Invece di

[self presentModalViewController:picker animated:YES];

2
quindi ora abbiamo presentViewController e non specifichiamo che il view controller deve essere modale?
Septiadi Agus

4

Come ha detto Vishal

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

assicurati di aver aggiunto anche "completamento: zero"


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

2

Uso:

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

E poi per il tuo utilizzo modale di licenziamento:

[self dismissViewControllerAnimated:controller completion:nil];

o

[self dismissViewControllerAnimated:YES completion:nil];
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.