質問

私はすぐに私のビューコントローラ負荷の一つとしてUIImagePickerControllerを表示しようとしています。私は次のようにユーザーが私はviewDidLoadメソッドをオーバーライドして、ボタンを押すことなく、これにたいと思います:

- (void)viewDidLoad {
    [super viewDidLoad];

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePickerController.allowsImageEditing = YES;
    imagePickerController.delegate = self;    
    [self presentModalViewController:imagePickerController animated:YES];
    [imagePickerController release];
}

これは、コンパイルと実行され、ビューコントローラがロードされたときしかし、画像ピッカーが表示されません。私は、例えば、ボタンのイベントにアタッチする場合は、このコードは正常に動作します。任意のアイデア?

感謝します。

役に立ちましたか?

解決

私は同じ問題を抱えていたが、それを解決しました。使用してみてください。

-(void) awakeFromNib {

}

それはちょうど、他のすべての負荷の後にロードされます。

他のヒント

タグ内のコードを入れてみてください
-(void)viewDidAppear

も、あなたはそれだけで、それは示して初めて実現するためにBOOL値を追加する必要がある場合がありますので、(あなたがUIImagePickerを却下した後、それが表示された場合も含む)のビューがが画面に表示されるたびに実行されたとき、またはあなたのことそれ(すなわちないモーダルビューを却下した後)します。

のviewDidLoadがpresentModalViewControllerを使用するのは時期尚早であると思わ:アニメーション:.私は次回の実行ループの反復からメソッドを呼び出すために、ワンショットタイマーをオフにフォークするsuggetと思います:

[NSTimer
 scheduledTimerWithTimeInterval:0
 target:self
 selector:@selector(onLoadTimer:)
 userInfo:nil
 repeats:NO];

次のメソッドを追加します:

- (void)onLoadTimer:(id)unused
{
    [self presentModalViewController:imagePickerController animated:YES];
    [imagePickerController release];
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top