私は奇妙なタイミングの問題を抱えているようです。私はモーダルビューとしてuiimagepickerを開きます。ユーザーが画像を選択したとき、または画像を取得したいときは変数に保存し、電子メールインターフェイスをモーダルビューとして開きます。dismissModalViewControllerAnimated非アトミック?
私の問題は、imagepickerでdismissModalViewControllerを呼び出してから、自分の電子メールインターフェイスにpresentmodalviewcontrollerを呼び出していますが、imagepickerが電子メールビューを表示するために外れていないことです。そのコード行が完了するのを待つ方法はありますか?
(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
if([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:@"public.image"]){
[self dismissModalViewControllerAnimated:YES];
imageFromCamera = [[UIImageView alloc] initWithImage:[info objectForKey:UIImagePickerControllerOriginalImage]];
MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init];
mailView.mailComposeDelegate = self;
[self presentModalViewController:mailView animated:YES];
[mailView release];
}
}
私はかなり間違った設計をしていますが、できれば助けてくれます。
あなたがしかし、これは微妙なタイミングのバグの多くを導入することができます。後で実行するコードを持つ別のメソッドを作成(渡すために与えられた時間を待つperformSelector:withObject:withDelay:
を使用することができますので、私はそれを使用することをお勧めしたい
おかげで、から行われます。 – Alfonsol