ユーザーが写真を撮った後、または保存した写真を選択した後に確認ビューを追加したい。確認ビューには、選択した画像が表示され、ツールバーに[キャンセルしてアップロード]ボタンが表示されます。
私のUIImagePickerControllerは、ナビゲーションコントローラーによって制御されるビューコントローラーの1つからモーダルに表示され、ナビゲーションコントローラーはタブバーコントローラーによって制御されます。
ユーザーが写真を選択したときに全画面表示(画像ピッカービューなど)になるように、確認ビューをモーダルに表示するにはどうすればよいですか?理想的には、次のようなものが必要です。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
UIViewController *modal = [[UIViewController alloc] init];
modal.view = confirmationView;
[self presentModalViewController:modal animated:YES];
[modal release];
}
ただし、それはアプリをクラッシュさせます。PICKERからモーダルに確認ビューを表示する必要がありますか?その場合、確認ビューが閉じられたときにピッカーも表示されないようにするにはどうすればよいですか?
編集:
投稿したコードのバグを修正しました。コピーアンドペーストの代わりにメモリから入力しようとすると、それが起こります:(とにかく、これまでの提案は役に立ちません。
モーダルコントローラーを提示してからピッカーを閉じても、おそらく両方のコントローラーが後で閉じられるため、何も起こりません。
ピッカーを閉じてからモーダルコントローラーを提示すると、モーダル遷移に関する例外が発生します。
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempting to begin a modal transition from <UINavigationController: 0x6b33940> to <UIViewController: 0x6b62b00> while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed'