カメラフィードと異なるソースを使用している場合は、UIImagePickerControllerをポップオーバーに表示していて、望みどおりに使用できます。しかし、あなたがソースUIImagePickerControllerSourceTypeCamera
ピッカーウィンドウをピックアップすることを決定したときにフルスクリーンを提示され、あなたは2例があります:あなたはカスタムコントロールを使用する場合は
- をしたいとあなたが できるだけ多くの写真を撮ることはできません(= NO showsCameraControls)同じコントローラで
- の画像を1枚取った後、デフォルトのコントロール(showsCameraControls = YES)を使用した場合は、もう一度使用できないのでコントローラを無視しなければなりません。これはあなたのケースです。 次のコントローラーを写真に撮った後にスタックに入れます。その後、 はあなたのピッカーコントローラーに戻そうとしていますが、もう使用できません。 これ以上黒い画面が表示されます。
imagePickerController:didFinishPickingMediaWithInfo:
ため
アップルのドキュメント:あなたはNOに画像ピッカーのshowsCameraControlsプロパティを設定し、 独自のカスタムコントロールを提供する場合
、あなたは画像ピッカーインターフェイスを却下する前に複数の画像 を取ることができます。ただし、その プロパティをYESに設定した場合、ユーザーが画像を1枚取るか、操作をキャンセルした後に、デリゲートは画像ピッカーインターフェイス を閉じる必要があります。
この場合、別の画像を撮りたい場合は、ベースコントローラに戻ってもう一度UIImagePickerControllerインスタンスを作成する必要があります。
こちらがお役に立てば幸いです。
編集: IMOは、ビューコントローラのスタックを再構築する最も簡単な方法は、アニメーションなしで写真を撮った後にピッカーを外し、その後にアニメーションで次のコントローラを表示することです。ピッカーコントローラーの直後に「点滅」することなく次のコントローラーが表示されることをユーザーに感じさせます。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[self dismissViewControllerAnimated:NO completion:^{
[self presentViewController:<newController> animated:YES completion:nil];
}];
}
追加のビューコントローラはいつ表示されますか?ユーザーが「使用」ボタンをタップした後私はそれを試み、余分なコントローラを却下した後、すべてのボタンが無効になっているので、その段階でイメージピッカーで他のことをすることはできませんが、選択した画像(yes、ipad)を表示していました。あなたのUIPickerDelegateメソッドのコードサンプルを提供したいですか? – bazik
ユーザーが「使用」をタップした後、デリゲートの ' - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info'コールが表示されます。このメソッドでは、私が気にする画像を 'info'から取得し、' myviewcontroller'に渡します。次に、[[myViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil]を呼び出してmyViewControllerを閉じると、黒い画面が表示されます。私は別の写真を撮る。 – Liron