2016-06-27 23 views
0

我使用的UIImagePickerController与此代码的UIImagePickerController画廊代表并没有叫

func openCamera() 
{ 
    if(UIImagePickerController .isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)) 
    { 

     picker.allowsEditing = false 
     picker.sourceType = UIImagePickerControllerSourceType.Camera 
     picker.cameraCaptureMode = .Photo 
     picker.modalPresentationStyle = .FullScreen 
     presentViewController(picker, 
           animated: true, 
           completion: nil) 

    } 
    else 
    { 
     openGallary() 
    } 
} 
func openGallary() 
{  
    let menuViewController = UIImagePickerController() 

    menuViewController.modalPresentationStyle = .Popover 
    menuViewController.preferredContentSize = CGSizeMake(320, 320) 
    //menuViewController.tableView = FrontTable 

    let popoverMenuViewController = menuViewController.popoverPresentationController 
    popoverMenuViewController?.permittedArrowDirections = .Any 
    popoverMenuViewController?.delegate = self 
    popoverMenuViewController?.sourceView = flagBtn 
    popoverMenuViewController?.sourceRect = CGRect(
     x: 15, 
     y: 25, 
     width: 1, 
     height: 1) 
    presentViewController(
     menuViewController, 
     animated: true, 
     completion: nil) 

} 


func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) 
{ 
    picker .dismissViewControllerAnimated(true, completion: nil) 
    let image=info[UIImagePickerControllerOriginalImage] as? UIImage 

    flagBtn.setImage(image, forState: .Normal) 
    flagBtn.setImage(image, forState: .Highlighted) 
    flagBtn.setImage(image, forState: .Selected) 
} 

随着相机委托工作正常,但与画廊的代表不工作。对于相机,我已经在类中定义了“picker”变量,并在“Viewdidload”中定义了它的代表self。我也尝试在openGallary函数中使用picker变量,但它也不起作用。

回答

0

我觉得这两条线可能会有所帮助:

menuViewController.delegate = self 
menuViewController.sourceType = .PhotoLibrary 

确保您已经添加UINavigationControllerDelegateUIImagePickerControllerDelegateViewController

+0

感谢它的工作 – Avim