Как загрузить UIImagePickerController в viewLoad - PullRequest
1 голос
/ 19 ноября 2009

Это кажется очень простой идеей ... У меня есть кнопка с надписью "загрузить картинку". Когда эта кнопка нажата, я хочу удалить текущий вид, загрузить новый, открыть средство выбора изображений, получить выбранное изображение и отобразить его в только что загруженном виде. Я прочитал несколько документов, в которых говорится, что UIImagePicker не работает в viewDidLoad, и нашел один поток, который предложил использовать вместо этого awakeFromNib, но даже это не работает ... вот код Пожалуйста, помогите.

В MenuViewController

-(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. Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 26 июня 2010

Вместо NSTimer вы, вероятно, захотите использовать в -viewDidLoad следующее,

[self performSelector:@selector(camera) withObject:nil afterDelay:0];
0 голосов
/ 21 декабря 2009

Я просто устанавливаю NSTimer в viewDidLoad с таймером 0, чтобы выбрать метод, в который я его загружаю.

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