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 2013

8
却下するには、これを使用します:[self dismissViewControllerAnimated:YES completion:nil];
Vishal 2013

同じメモリリークの問題が発生してアプリが終了します
Ram

どこで問題が発生するかは、どの行にありますか?
Vishal 2013

このエラー 'UIApplicationInvalidInterfaceOrientation'が発生しました、理由: 'preferredInterfaceOrientationForPresentationはサポートされているインターフェイスの向きを返す必要があります!'
Ramは

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ができましたが、ビューコントローラがモーダルであることを指定していませんか?
Septiadi Agus 2013

4

ヴィシャルが述べたように

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

「completion:nil」も追加したことを確認してください


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.