未调用ELCImagePickerController委托方法

时间:2014-08-24 20:54:35

标签: ios delegates swift elcimagepickercontroller

我正在尝试使用ELCImagePickerController构建应用。我发现我可以选择多张图片。但是,未调用ELCImagePickerController委托方法。

这是我的代码:

@IBAction func uploadImages(sender: AnyObject) {

        // Create the alert controller
        //var alertController = UIAlertController(title: "", message: "", preferredStyle: .Alert)
        var alertController = UIAlertController(title: nil, message: nil, preferredStyle: .Alert)
        // Create the actions
        var takeAction = UIAlertAction(title: "Take Photos", style: UIAlertActionStyle.Default) {
            UIAlertAction in
            NSLog("Take Photos Pressed")

        }

        var selectAction = UIAlertAction(title: "Select Photos", style: UIAlertActionStyle.Default) {
            UIAlertAction in
            NSLog("Select photos Pressed")
            var imagePicker = ELCImagePickerController(imagePicker: ())
            imagePicker.maximumImagesCount = 2
            imagePicker.returnsOriginalImage = false
            imagePicker.returnsImage = true
            imagePicker.onOrder = true
            imagePicker.delegate = self

            self.presentViewController(imagePicker, animated: true, completion: nil)

        }

        var cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) {
            UIAlertAction in
            NSLog("Cancel Pressed")
        }

        // Add the actions
        alertController.addAction(takeAction)
        alertController.addAction(selectAction)
        alertController.addAction(cancelAction)

        // Present the controller
        self.presentViewController(alertController, animated: true, completion: nil)
        }
    }

func elcImagePickerController(picker: ELCImagePickerController!, didFinishPickingMediaWithInfo info:[AnyObject]!) {

                NSLog("controller executed.")

    }

2 个答案:

答案 0 :(得分:1)

您需要设置ImagePicker委托

imagePicker.imagePickerDelegate = self

答案 1 :(得分:0)

您的NSLog语句是否会被调用?我在尾随闭包语法中注意到的一件事是您使用的是类型名称与该类型的变量。例如,您正在撰写UIAlertAction in ... vs alertAction in ...。您应该提供在闭包内使用的名称而不是类型本身。如果闭包的其余部分没有执行,则永远不会设置委托,因此永远不会调用委托方法。