1

这似乎是一个非常简单的想法......我有一个按钮,上面写着“加载图片”。单击该按钮时,我想删除当前视图,加载一个新视图,打开图像选择器,获取所选图片,并将其显示在我刚刚加载的视图中。我已经阅读了几篇文档,说 UIImagePicker 在 vi​​ewDidLoad 中不起作用,并找到了一个建议使用 awakeFromNib 的线程,但即使这样也不起作用......这里是代码。请帮忙。

在菜单视图控制器中

-(IBAction)loadPictureButtonPressed
{
    UIView *parent = [self.view superview];
    if(self.loadPictureViewController.view.superview == nil)
    {
         if(self.loadPictureViewController == nil)
         {
              LoadPictureViewController *picController = [[LoadPictureViewController alloc]
          initWithNibName:@"LoadPictureView" bundle: nil];
              self.loadPictureViewController = picController;
              [picController release];
        }
    }
    [parent addSubview:self.loadPictureViewController.view];
    [self.view removeFromSuperview];
}

在 LoadPictureViewController 中

-(void)awakeFromNib
{
     if([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary])
     {  
            UIImagePickerController *picker = [[UIImagePickerController alloc] init];
            picker.delegate = self;
            picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
            [self presentModalViewController:picker animated:YES];
            [picker release];
    }
    else
    {
            UIAlertView *alert = [[UIAlertView alloc]
                           initWithTitle:@"Error!"
                           message:@"Device does not support photo library";
                           delegate:nil
                           cancelButtonTitle:@"Ok"
                           otherButtonTitles:nil];
           [alert show];
           [alert release];
   }
}

我再次尝试将此代码放在 viewDidLoad 和 awakeFromNib 中。请帮忙

4

2 回答 2

0

我只是在 viewDidLoad 中设置了一个 NSTimer,计时器为 0 来选择我加载它的方法。

[NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(camera) userInfo:nil repeats:NO];
于 2009-12-21T02:56:14.830 回答
0

而不是 NSTimer,您可能希望在 -viewDidLoad 中使用以下内容,

[self performSelector:@selector(camera) withObject:nil afterDelay:0];
于 2010-06-26T04:37:48.170 回答