NavigationController (NavC1) に埋め込まれた別の ViewController (VC2) をモーダルで開く ViewController (VC1) があります。VC2 は、ユーザーが組み込みのフォト ライブラリなどのさまざまなソースを選択するためのソース選択ビューとして使用されます。ユーザーが VC2 でフォト ライブラリを選択すると、Apple の imagePicker が開きます。
VC1 --(modal)--> NavC1 ----> VC2
imagePickerdidFinish では、VC2 をモーダルに提示する前に閉じたいと思います。実際、このメソッドは次のようになります。
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage];
...
NSError* error;
if([UIImageJPEGRepresentation(image, 0.5) writeToFile:path options:NSDataWritingFileProtectionComplete error:&error] == NO)
{
NSLog(@"Saving image to file failed with error %@",[error localizedDescription]);
}
picker.delegate = nil;
[self dismissModalViewControllerAnimated:YES];
...
}
私がこれまでに試したこと:
- 親ナビゲーションコントローラーを使用して却下しようとしました
- VC1 のVC2 への参照を保存し
prepareForSegue:
、imagePicker が終了したときに VC2 から VC1 にデリゲートを渡しました。この方法では、モーダル ビューを手動で単純に非表示にしようとしました ([self.myModalView dismissModalViewControllerAnimated:YES]
)
誰か私に提案がありますか?前もって感謝します!