presentModalViewController: Animated, ios6'da kullanımdan kaldırıldı


101

Bir resim seçici için aşağıdaki kodu kullanıyorum. Ancak simülatörde çalıştırdığımda bir bellek sızıntısı oluyor ve presentModalViewcontroller:animatediOS6'da kullanımdan kaldırıldığına dair bir uyarı alıyorum . Ben de dismissModalViewController:animatedkullanımdan kaldırıldım. SDK 6.1 kullanıyorum.

ImagePicker Kodu:

- (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];
}

Yanıtlar:


216

Bu satırı kullanın ve kontrol edin:

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

1
Bunun yerine: [self presentModalViewController: imagePicker animated: YES];
Vishal

8
ve reddetmek için şunu kullanın: [self dismissViewControllerAnimated: YES complete: nil];
Vishal

Aynı bellek sızıntısı sorununu alıyorum ve uygulama kapanacak
Ram

Nerede sorun alıyorsun, hangi satırda?
Vishal

Bu hatayı alıyorum 'UIApplicationInvalidInterfaceOrientation', neden: 'preferInterfaceOrientationForPresentation desteklenen bir arabirim yönlendirmesi döndürmelidir!'
Ram

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

Onun yerine

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

ve

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

Onun yerine

[self presentModalViewController:picker animated:YES];

2
bu yüzden şimdi presentViewController'a sahibiz ve görünüm denetleyicisinin modal olması gerektiğini belirtmiyoruz?
Septiadi Agus

4

Vishal'ın bahsettiği gibi

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

"complete: nil" de eklediğinizden emin olun


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

2

Kullanım:

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

Ve sonra işten çıkarma yönteminiz için:

[self dismissViewControllerAnimated:controller completion:nil];

veya

[self dismissViewControllerAnimated:YES completion:nil];
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.