presentModalViewController: Animated เลิกใช้แล้วใน ios6


101

ฉันใช้รหัสต่อไปนี้สำหรับเครื่องมือเลือกรูปภาพ แต่เมื่อฉันเรียกใช้ในโปรแกรมจำลองฉันมีหน่วยความจำรั่วและได้รับคำเตือนเกี่ยวกับpresentModalViewcontroller:animatedการเลิกใช้งานใน iOS6 ฉันยังdismissModalViewController:animatedเลิกใช้งาน ฉันใช้ SDK 6.1

รหัสสำหรับ 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];
}

คำตอบ:


216

ใช้บรรทัดนี้และตรวจสอบ:

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

1
แทนสิ่งนี้: [self presentModalViewController: imagePicker animated: YES];
Vishal

8
และสำหรับการเลิกใช้สิ่งนี้: [self ไพลินวิวคอนโทรลแอนิเมชั่น: ใช่เสร็จสิ้น: ศูนย์];
Vishal

ได้รับปัญหาหน่วยความจำรั่วเหมือนกันและแอปจะปิด
ราม

จุดที่คุณได้รับปัญหาหมายถึงบรรทัดไหน?
Vishal

ฉันได้รับข้อผิดพลาดนี้ 'UIApplicationInvalidInterfaceOrientation', เหตุผล: 'recommendedInterfaceOrientationForPresentation ต้องส่งคืนการวางแนวอินเทอร์เฟซที่รองรับ!'
ราม

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

แทน

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

และ

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

แทน

[self presentModalViewController:picker animated:YES];

2
ตอนนี้เรามี presentViewController แล้วและไม่ได้ระบุว่า view controller ควรเป็น modal?
Septiadi Agus


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

2

ใช้:

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

จากนั้นสำหรับการใช้วิธีการเลิกจ้างของคุณ:

[self dismissViewControllerAnimated:controller completion:nil];

หรือ

[self dismissViewControllerAnimated:YES completion:nil];
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.