1

すべてのコードが正しいことを確認するために、ヘッダー ファイルを次に示します。

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UIImagePickerControllerDelegate,UINavigationControllerDelegate> {

    IBOutlet UIImageView *imageView;
    IBOutlet UIButton *choosePhoto;
    IBOutlet UIButton *takePhoto;

}

@property(nonatomic, retain) UIButton *choosePhoto;

@property(nonatomic, retain) UIButton *takePhoto;

@property(nonatomic, retain) UIImageView *imageView;

-(IBAction)getPhoto:(id)sender;
-(IBAction)takePhoto:(id)sender;

@end

そして、ここに私の実装があります:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize imageView,choosePhoto,takePhoto;

- (void)viewDidLoad
{
    [super viewDidLoad];

}

-(IBAction)getPhoto:(id)sender {

    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    [self presentViewController:picker animated:YES completion:nil];
}

-(IBAction)takePhoto:(id)sender {

    UIImagePickerController *picker2 = [[UIImagePickerController alloc] init];
    picker2.delegate = self;
    picker2.sourceType = UIImagePickerControllerSourceTypeCamera;
    [self presentViewController:picker2 animated:YES completion:nil];
}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    [picker dismissViewControllerAnimated:YES completion:nil];
    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}

-(void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];

}

@end

私のインターフェースビルダーには2つと1つがUIButtonsあります。UIIImageViewテスト アプリは正常にビルドされ、まったく問題はありませんが、写真を選択するボタンまたは写真を撮るボタンを押すと、アプリがクラッシュします。これは、シミュレーターが技術的にカメラやライブラリから選択できる写真を持っていないからですか? これは私に与えるエラーです: UIStatusBarStyleBlackTranslucentこのデバイスでは利用できません。

Cameratest[8290:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'On iPad, UIImagePickerController must be presented via UIPopoverController

アドバイスをいただければ幸いです。

4

2 に答える 2

8

アップル より:

http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/25-Using_iOS_Simulator/ios_simulator_application.html

ハードウェア シミュレーションのサポート

iOS シミュレーターは、加速度計やカメラ ハードウェアをシミュレートしません。

さらに、H2CO3 は正しく、別の問題があり、エラー メッセージは非常に明確です。

「iPad では、UIIMagePickerController を UIPopoverController 経由で提示する必要があります」

簡単なグーグル検索で、以下のリンクが表示されました。Zubair の応答を確認してください。iPad で実行する場合は、ポップオーバーで UIImagePickerController を表示する必要があると思います。

UIStatusBarStyleBlackTranslucent はこのデバイスでは利用できません

于 2013-03-28T22:18:41.230 に答える
0

カメラのシミュレーションをサポートしていないシミュレーターはありません。カメラの場合、デバイスでアプリを実行する必要があります

于 2013-10-28T07:38:07.213 に答える