8

メッセージング アプリ (WhatsApp など) を開発しています。ユーザーはテキスト メッセージと画像メッセージを互いに送信できます。

ユーザーが画像を送信したい場合、カメラロールから画像を選択するか、カメラで撮影することができます。

これはUIImagePickerController、両方のケースを提示する方法です。

- (void)handleTakePhoto
{
    UIImagePickerController *ipc = [[UIImagePickerController alloc] init];

    ipc.delegate = self;
    ipc.sourceType = UIImagePickerControllerSourceTypeCamera;

    [self presentModalViewController:ipc animated:YES];
    [ipc release];
}

- (void)handleChooseFromLibrary
{
    UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
    ipc.delegate = self;
    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    NSString *desired = (NSString *)kUTTypeImage;
    if ([[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary] containsObject:desired]) {
        ipc.mediaTypes = [NSArray arrayWithObject:desired];
    }

    [self presentModalViewController:ipc animated:YES];
    [ipc release];
}

ユーザーが写真を選択/撮影した後SendImageViewController、画像を全画面表示し、実際に画像を送信するためのボタンを押しています。

これは私がそれをプッシュする方法です:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];


    SendImageViewController *sivc = [[SendImageViewController alloc] initWithImage:image
                                                                          delegate:self];
    [picker pushViewController:sivc animated:YES];
    [sivc release];
}  

SendImageViewControllerカメラロールからプッシュすると、すべてがうまく機能します。問題はSendImageViewController、カメラにナビゲーション バーがないため、カメラから画像を取得するときにプッシュできないことです (プッシュしようとしましたが、SendImageViewControllerビューがうまく表示されません) 。

どうすればこれに対処できますか?

*ピッカーを閉じてから を押したくはありません。カメラ/カメラ ロールの上に を押しSendImageViewControllerたいSendImageViewControllerので、[戻る] ボタンをタップすると、カメラ/カメラ ロール ビューに戻ります。

4

1 に答える 1

15

次のようにナビゲーション バーを表示してみてください。

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];

[picker setNavigationBarHidden:NO animated:YES];
[picker pushViewController:vc animated:YES];
于 2012-07-22T15:49:27.347 に答える