title: how to add image from photo library or camera to my Ipad application?
body: <p>I want to add images from photo  library or by using camera to my ipad application. I had used same coding as iphone . But the application is crashing. I think this is not the right way to add picture from library to ipad application. If anyone knows please help me.</p>
  
  <pre><code>-(void)ctnPhotoSelection
  {
      isMyCtView = YES;
      UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@""
                                                               delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil
                                                      otherButtonTitles:@"Take Photo With Camera", @"Select Photo From Library", @"Cancel", nil];
      actionSheet.actionSheetStyle = UIActionSheetStyleAutomatic;
      actionSheet.destructiveButtonIndex = 1; 
      [actionSheet showInView:self.view]; 
      [actionSheet release];
  }
  
  - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
  {
      if (buttonIndex == 0)
      {
          [self TakePhotoWithCamera];
      }   
      else if (buttonIndex == 1)
      {
          [self SelectPhotoFromLibrary];
      }
  
      else if (buttonIndex == 2)
      {
          NSLog(@"cancel");
      }
  }
  
  -(void) TakePhotoWithCamera
  {
      [self startCameraPickerFromViewController:self usingDelegate:self];
  }
  
  -(void) SelectPhotoFromLibrary
  {
      [self startLibraryPickerFromViewController:self usingDelegate:self];
  }
  
  - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker  
  {  
      [[picker parentViewController] dismissModalViewControllerAnimated:YES];
  }  
  
  - (BOOL)startCameraPickerFromViewController:(UIViewController*)controller usingDelegate:(id&lt;UIImagePickerControllerDelegate&gt;)delegateObject  
  {
      if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
      {
          UIImagePickerController *picker = [[UIImagePickerController alloc] init];
          picker.sourceType = UIImagePickerControllerSourceTypeCamera;
          picker.allowsEditing = YES;
          picker.delegate = self;
          [controller presentModalViewController:picker animated:YES];
          [picker release];
      }
      return YES;  
  }  
  
  - (BOOL)startLibraryPickerFromViewController:(UIViewController*)controller usingDelegate:(id&lt;UIImagePickerControllerDelegate&gt;)delegateObject  
  {
      if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) 
      {
          UIImagePickerController *picker1 = [[UIImagePickerController alloc]init];
          picker1.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
          picker1.allowsEditing = YES;
          picker1.delegate = self;
          [controller presentModalViewController:picker1 animated:YES];
          [picker1 release];
      }
      return YES;  
  }
  
  - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
  {   
      UIImage * img = [info objectForKey:@"UIImagePickerControllerEditedImage"];
      [self useImage:img];
      [[picker parentViewController] dismissModalViewControllerAnimated:NO];
      UINavigationController* navController = self.navigationController;
      UIViewController* controller = [navController.viewControllers objectAtIndex:0];
      [controller dismissModalViewControllerAnimated:NO];
  }
  
  -(void)useImage:(UIImage *)theImage
  {
      NSData *addImageData = UIImagePNGRepresentation(theImage);
      IpadAppDelegate *appDelegate=(IpadAppDelegate*)[ [UIApplication sharedApplication] delegate];
  
      if(isMyCtView == YES)
      {
          isMyCtView = NO;
          appDelegate.imageCtData = addImageData;
          appDelegate.isctFromDevice = YES;
          appDelegate.isctnCntrl = YES;
          [self.view sendSubviewToBack:myCtnView];
      }
  
      [self reloadView];
  }
  </code></pre>
  
  <p><strong>Crash Log</strong></p>
  
  <pre><code>Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'On iPad, UIImagePickerController must be presented via UIPopoverController'
  *** Call stack at first throw:
  (
   0   CoreFoundation                      0x3587a987 __exceptionPreprocess + 114
   1   libobjc.A.dylib                     0x34a8249d objc_exception_throw + 24
   2   UIKit                               0x34378317 UIImagePickerEnsureViewIsInsidePopover + 258
   3   PhotoLibrary                        0x3499893b -[PLLibraryView didMoveToWindow] + 86
   4   UIKit                               0x341bf76b -[UIView(Internal) _didMoveFromWindow:toWindow:] + 698
   5   UIKit                               0x341bf583 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 210
   6   UIKit                               0x341bf433 -[UIView(Hierarchy) _postMovedFromSuperview:] + 106
   7   UIKit                               0x341aa82f -[UIView(Internal) _addSubview:positioned:relativeTo:] + 678
   8   UIKit                               0x341aa57f -[UIView(Hierarchy) addSubview:] + 22
   9   UIKit                               0x341fc8a9 -[UINavigationTransitionView transition:fromView:toView:] + 416
   10  UIKit                               0x341fc6fd -[UINavigationTransitionView transition:toView:] + 20
   11  UIKit                               0x341ef8cf -[UINavigationController _startTransition:fromViewController:toViewController:] + 1274
   12  UIKit                               0x341ef35f -[UINavigationController _startDeferredTransitionIfNeeded] + 182
   13  UIKit                               0x341ef2a3 -[UINavigationController viewWillLayoutSubviews] + 14
   14  UIKit                               0x341ef23f -[UILayoutContainerView layoutSubviews] + 138
   15  UIKit                               0x341b80cf -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 26
   16  CoreFoundation                      0x35818bbf -[NSObject(NSObject) performSelector:withObject:] + 22
   17  QuartzCore                          0x31075685 -[CALayer layoutSublayers] + 120
   18  QuartzCore                          0x3107543d CALayerLayoutIfNeeded + 184
   19  QuartzCore                          0x3106f56d _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 212
   20  QuartzCore                          0x3106f383 _ZN2CA11Transaction6commitEv + 190
   21  QuartzCore                          0x31092f9d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 52
   22  CoreFoundation                      0x3580ac59 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 16
   23  CoreFoundation                      0x3580aacd __CFRunLoopDoObservers + 412
   24  CoreFoundation                      0x358020cb __CFRunLoopRun + 854
   25  CoreFoundation                      0x35801c87 CFRunLoopRunSpecific + 230
   26  CoreFoundation                      0x35801b8f CFRunLoopRunInMode + 58
   27  GraphicsServices                    0x320c84ab GSEventRunModal + 114
   28  GraphicsServices                    0x320c8557 GSEventRun + 62
   29  UIKit                               0x341dc329 -[UIApplication _run] + 412
   30  UIKit                               0x341d9e93 UIApplicationMain + 670
   31  IpadComicBuilder                    0x00002537 main + 70
   32  IpadComicBuilder                    0x000024b8 start + 52
  )
  terminate called after throwing an instance of 'NSException'
  Program received signal:  “SIGABRT”.
  warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (file not found).
  (gdb)
  </code></pre>