presentModalViewController:在ios6中不推荐使用Animated

Ram*_*Ram 100 iphone objective-c uiimagepickercontroller uiimage

我使用以下代码作为图像选择器.但是当我在模拟器中运行它时,我有一个内存泄漏,我得到一个关于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];
}
Run Code Online (Sandbox Code Playgroud)

Vis*_*hal 215

使用此行并检查:

[self presentViewController:imagePicker animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

  • 并且对于解雇使用此:[self dismissViewControllerAnimated:YES completion:nil]; (8认同)

小智 17

[[Picker presentingViewController] dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

代替

 [[Picker parentViewControl] dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

[self presentViewController:picker animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

代替

[self presentModalViewController:picker animated:YES];
Run Code Online (Sandbox Code Playgroud)

  • 所以现在我们有presentViewController,并没有指定视图控制器应该是模态的? (2认同)

Kri*_*ota 5

正如维沙尔提到的

[self presentViewController:imagePicker animated:YES completion:nil];
[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

确保您还添加了“completion:nil”