presentModalViewController: Animated tidak digunakan lagi di ios6


101

Saya menggunakan kode berikut untuk pemilih gambar. Tetapi ketika saya menjalankannya di simulator, saya mengalami kebocoran memori dan saya mendapat peringatan tentang presentModalViewcontroller:animatedtidak lagi digunakan di iOS6. Saya juga dismissModalViewController:animatedtidak digunakan lagi. Saya menggunakan SDK 6.1.

Kode untuk 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];
}

Jawaban:


216

Gunakan baris ini & periksa:

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

1
Di tempat ini: [self presentModalViewController: imagePicker animated: YES];
Vishal

8
dan untuk menutup gunakan ini: [self dischargeViewControllerAnimated: YES selesai: nil];
Vishal

Mendapatkan masalah kebocoran memori yang sama dan aplikasi akan ditutup
Ram

Di mana Anda mendapat masalah berarti di baris mana?
Vishal

Saya mendapatkan kesalahan ini 'UIApplicationInvalidInterfaceOrientation', alasan: 'PreferensiInterfaceOrientationForPresentation harus mengembalikan orientasi antarmuka yang didukung!'
Ram

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

Dari pada

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

dan

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

Dari pada

[self presentModalViewController:picker animated:YES];

2
jadi sekarang kita memiliki presentViewController dan tidak menentukan bahwa pengontrol tampilan harus modal?
Septiadi Agus

4

Seperti yang Vishal sebutkan

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

pastikan Anda menambahkan "penyelesaian: nihil" juga


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

2

Menggunakan:

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

Dan kemudian untuk penggunaan modal pemecatan Anda:

[self dismissViewControllerAnimated:controller completion:nil];

atau

[self dismissViewControllerAnimated:YES completion:nil];
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.