2012-05-08 13 views
0

私はこのことについて多く研究しました。ボタンに触れると、デバイスから画像を選んで画面に表示する必要があります。ImagePickerControllerを使用すると、私のアプリがクラッシュする

しかし、これは、ボタンがタッチされた/押されると、私のアプリがクラッシュする原因になります。私はXcodeの4.2を使用したiPadアプリを開発しています

[self presentModalViewController:myPhotopicker animated:YES]; 

: それはこのコード行からクラッシュします。私はテストのためにiPad 5.0シミュレータを使用しています。私のシステムはMac OS X、バージョン10.6.8で動作します。

ボタンが押されたときに関数が呼び出された後:

-(IBAction)getPhoto:(id)sender 
{ 
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { 
     if (myPhotopicker==nil) { myPhotopicker = [[UIImagePickerController alloc] init]; 
      myPhotopicker.delegate = self; }// create once! 
     myPhotopicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

     [self presentModalViewController:myPhotopicker animated:YES]; 

    } else { 
     NSString *str = @"Photo Album is not available!";  

    } 

} 
+0

あなたは、コンパイラになっているクラッシュエラーとは何ですか?私は、あなたの記憶がなくなる可能性が最も高いと信じています。 – Lefteris

+0

"スレッド1:プログラム受信信号:" SIGABRT " –

+0

SIGABRTは通常、プログラムが例外をスローしたことを意味します。デバッガコンソールに詳細が表示されるはずです。また、objc_exception_throwにブレークポイントを設定して、例外がスローされたスタックトレースを取得することができます。 – Lefteris

答えて

0

私はあなたのコードを試してみましたが、シミュレータでクラッシュを再現することができます。 しかし、私のiPhone 4ではiOS 4.2で正常に動作しています。

しかし、私はシミュレータの中に私のギャラリーに写真をいくつか入れました。今 (スタートで-シミュレータSafariは、いくつかのページを開いて、長いそれらを押して、メニューから[保存]を選択していくつかの写真を保存します。)

、シミュレータは、コンソールに

2012-05-08 15:53:55.605 test[5870:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'On iPad, UIImagePickerController must be presented via UIPopoverController' 

を書き込みます。

さて、読んで、行わ:

-(IBAction)getPhoto:(UIButton *)sender 
{ 
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) 
    { 
     if (myPhotopicker==nil) { 
      myPhotopicker = [[UIImagePickerController alloc] init]; 
      myPhotopicker.delegate = self; 
     }// create once! 
     myPhotopicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
      // iPad Code: 
      UIPopoverController *popover = 
       [[UIPopoverController alloc] initWithContentViewController:myPhotopicker]; 
      [popover presentPopoverFromRect:sender.bounds 
            inView:self.view 
        permittedArrowDirections:UIPopoverArrowDirectionAny 
            animated:YES]; 
     } else { 
      // iPhone Code: 
      [self presentModalViewController:myPhotopicker animated:YES]; 
     } 
    } else { 
     NSLog(@"Photo Album is not available!"); 
    }  
} 

そして今、それはそのようになっています
enter image description here

+0

おかげで、それが働いた を残します –

関連する問題