presentModalViewController: Animated không được chấp nhận trong ios6


101

Tôi đang sử dụng mã sau cho bộ chọn hình ảnh. Nhưng khi tôi chạy nó trong trình mô phỏng, tôi bị rò rỉ bộ nhớ và tôi nhận được cảnh báo về presentModalViewcontroller:animatedviệc không được dùng nữa trong iOS6. Tôi cũng bị dismissModalViewController:animatedphản đối. Tôi đang sử dụng SDK 6.1.

Mã cho 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];
}

Câu trả lời:


216

Sử dụng dòng này và kiểm tra:

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

1
Thay vào đó: [self presentModalViewController: imagePicker animation: YES];
Vishal

8
và để loại bỏ, hãy sử dụng cái này: [self allowViewControllerAnimated: YES complete: nil];
Vishal

Gặp phải sự cố rò rỉ bộ nhớ tương tự và ứng dụng sẽ đóng
Ram

Nơi bạn nhận được vấn đề có nghĩa là ở dòng nào?
Vishal

Tôi nhận được lỗi này 'UIApplicationInvalidInterfaceOrientation', lý do: 'favouriteInterfaceOrientationForPresentation phải trả về hướng giao diện được hỗ trợ!'
Ram

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

Thay vì

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];

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

Thay vì

[self presentModalViewController:picker animated:YES];

2
vì vậy bây giờ chúng ta có presentViewController và không chỉ định rằng bộ điều khiển chế độ xem phải là phương thức?
Septiadi Agus,

4

Như Vishal đã đề cập

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

đảm bảo rằng bạn cũng đã thêm "hoàn thành: nil"


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

2

Sử dụng:

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

Và sau đó để sử dụng phương thức sa thải của bạn:

[self dismissViewControllerAnimated:controller completion:nil];

hoặc là

[self dismissViewControllerAnimated:YES completion:nil];
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.