ssModalViewControllerAnimated非原子

ssModalViewControllerAnimated非原子

看来我有一个奇怪的时间问题。我打开uiimagepicker作为模式视图。当用户选择图像或我要拍摄图像时,将其保存到变量中,然后打开电子邮件界面作为模式视图。

我的问题是我在图像选择器上调用了dismissModalViewController,然后为我的电子邮件接口调用了presentmodalviewcontroller,但是图像选择器没有及时消失以显示电子邮件视图。有没有办法“等待”该行代码完成?

(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:等待给定的时间过去(创建另一个方法,该方法稍后要执行代码。

但是,这可能会引入许多细微的计时错误,因此我建议仅在最极端的情况下使用它。

我认为您可能可以使用viewDidAppear:进行某些操作,以查找在didFinishPicking…中设置的标志,该标志指示您正在等待imagePicker的动画结束。由于它是didAppear,因此动画应该在那时完成。

关于iphone - dismissModalViewControllerAnimated非原子?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1160382/

10-09 02:22