2009-08-31 7 views
4

ビューを読み込むときにカメラを起動できないようです。私は最終的にカメラをロードするために画面上のボタンを見つけて押してください(冗長)。これどうやってするの?コードは、以下:viewDidLoadでiPhoneカメラを起動する方法は?

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 

    self.imgPicker = [[UIImagePickerController alloc] init]; 
    self.imgPicker.allowsImageEditing = NO; 
    self.imgPicker.delegate = self; 
    self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    [super viewDidLoad]; 

    [self presentModalViewController:self.imgPicker animated:YES]; 

} 

UPDATE:-viewDidAppearに上記のコードを確定
:(BOOL)は、カメラを起動させアニメーションが、アプリケーションは、最後のルーチンが[UIWindowController transitionViewDidCompleteと直後に墜落しました: fromView:toView]; (デバッガで引用されているように)

答えて

4

viewWillAppear :,またはviewDidAppear:で最初に動作しない場合は、これを行う必要があります。ビューが最初に作成された後に呼び出され、ビューがそのポイントの他のもののサブビューではないため、viewDidLoadでそれを実行しようとすると機能しません。私が理解する限り、presentModalViewControllerをselfで呼び出すには、UIWindowにあるレベルでビューを表示する必要があります。

もう1つ気がついた点がもう1つあります。あなたのコードはあなたのimgPickerプロパティの宣言に応じてメモリをリークします。もしassignの代わりにretainを使って宣言されていれば、明示的に2回どこかに明示的に解放しない限り、pickerは常にメモリに存在します。その場合、プロパティに割り当てるときにinit'dオブジェクトを自動解放する必要があります。

+0

おかげでケブラー!あなたは潜在的な漏れの頭痛から私を救った。 – RexOnRoids

+0

UPDATE: - (void)viewDidAppear:(BOOL)アニメーションがこの場合に機能しました。ありがとう! – RexOnRoids

+0

UPDATE-2:カメラは表示されていますが、アプリは「エラーEXC_BAD_ACCESS」で終了します – RexOnRoids

0

現在のモーダルビューへの呼び出しをロードしたときに表示されませんでした。ピッカービューをプッシュする[super viewDidload]を呼び出した後、2秒タイマーを試すことができます。

+1

タイマーでは問題は解決しません。コントローラーで最初にビューが作成されてから表示されるまでの時間が2秒以上になることがあります。この場合、コールはまだ機能しません。 – Kevlar

関連する問題