presentModalViewController: Animated jest przestarzała w ios6


101

Używam następującego kodu dla selektora obrazów. Ale kiedy uruchamiam go w symulatorze, mam wyciek pamięci i otrzymuję ostrzeżenie o presentModalViewcontroller:animatedwycofaniu w iOS6. Jestem też dismissModalViewController:animatedprzestarzały. Używam SDK 6.1.

Kod dla 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];
}

Odpowiedzi:


216

Użyj tej linii i sprawdź:

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

1
Zamiast tego: [self presentModalViewController: imagePicker animated: YES];
Vishal

8
a do odrzucenia użyj tego: [self dismissViewControllerAnimated: YES ukończenie: nil];
Vishal

Otrzymuję ten sam problem z wyciekiem pamięci i aplikacja zostanie zamknięta
Ram

Gdzie masz problem, to w której linii?
Vishal

Otrzymuję ten błąd „UIApplicationInvalidInterfaceOrientation”, powód: „PreferowanyInterfaceOrientationForPresentation musi zwrócić obsługiwaną orientację interfejsu!”
Ram

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

Zamiast

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

i

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

Zamiast

[self presentModalViewController:picker animated:YES];

2
więc teraz mamy presentViewController i nie określamy, że kontroler widoku powinien być modalny?
Septiadi Agus

4

Jak wspomniał Vishal

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

upewnij się, że dodałeś również „ukończenie: nil”


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

2

Posługiwać się:

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

A następnie do zwolnienia z pracy modalnej:

[self dismissViewControllerAnimated:controller completion:nil];

lub

[self dismissViewControllerAnimated:YES completion:nil];
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.