UIViewController
セットアップは次のとおりですUITableView
。セルの 1 つに触れると、アクション シートが表示され、ライブラリから写真を選択するか、新しい写真を撮るオプションが提供されます。どちらの場合も、次のUIImagePickerController
ように表示します。
私のインターフェース宣言で
UIImagePickerController* imageController;
ビューでDidLoad:
imageController = [[UIImagePickerController alloc] init];
imageController.delegate = self;
imageController.allowsEditing = YES;
私のアクションシートデリゲートメソッドで
if(buttonIndex == 2)
return;
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
if(buttonIndex == 1)
sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imageController.sourceType = sourceType;
[self presentModalViewController:imageController animated:YES];
これで問題なく動作し、イメージ ピッカーが表示されます。ただし、この時点から、ナビゲーション コントローラーが正しく動作しないようです。電話できる
[self.navigationController popViewControllerAnimated:YES];
ナビゲーション バーのタイトルは通常のポップ アニメーションで変わりますが、コントローラー自体は消えません。これは、イメージ ピッカー コントローラーが表示された後にのみ発生します。コントローラーを表示する前にアクションシートをキャンセルできますが、まったく問題ありません。
このアプリは既に公開されているため、短いビデオへのリンクを含めました。これは単なる再構築です。
http://screencast.com/t/qBolp2v3iCyR
ナビゲーションコントローラーとタブバーコントローラーからモーダルを表示しようとしました-同じ結果です。この呼び出しを使用して、別の表示方法を試しました。
[self presentViewController:imageController animated:YES completion:^{}];
ナビゲーション コントローラーが nil ではないこと、および適切なコントローラーがスタック上にあることを確認しました。どんな助けでも大歓迎です。前もって感謝します。