2016-05-13 5 views
0

enter image description here Я делаю знакомства. , поэтому пользователям необходимо обновить свои изображения в профиле. В разделе профиля, есть 3 вида изображений. , и если они хотят добавить изображение к каждому изображению, , они должны обновить каждый просмотр изображения UIimagepicker. , но я знаю, что могу использовать только одну функцию в протоколе UIImagepikerControllerDelegate.Как добавить несколько изображений, и каждый вид изображения может сделать подборщик изображений?

как я могу это сделать?

ниже мой не удалось код

импорт UIKit

класс RegisterPicture: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

@IBAction func pick1(sender: AnyObject) { 

    let picker1 = UIImagePickerController() 

    picker1.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum 

    picker1.allowsEditing = true 

    picker1.delegate = self 

    self.presentViewController(picker1, animated: false, completion: nil) 
} 

@IBAction func pick2(sender: AnyObject) { 

    let picker2 = UIImagePickerController() 

    picker2.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum 

    picker2.allowsEditing = true 

    picker2.delegate = self 

    self.presentViewController(picker2, animated: false, completion: nil) 
} 

@IBAction func pick3(sender: AnyObject) { 

    let picker = UIImagePickerController() 

    picker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum 

    picker.allowsEditing = true 

    picker.delegate = self 

    self.presentViewController(picker, animated: false, completion: nil) 
} 

@IBOutlet var picture1: UIImageView! 

@IBOutlet var picture2: UIImageView! 

@IBOutlet var picture3: UIImageView! 

func imagePickerController(picker1: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    picker1.dismissViewControllerAnimated(false, completion : nil) 


} 

func imagePickerController(picker2: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    picker2.dismissViewControllerAnimated(false, completion : nil) 
    self.picture2.image = info[UIImagePickerControllerOriginalImage] as? UIImage 

} 

func imagePickerController(picker3: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    picker3.dismissViewControllerAnimated(false, completion : nil) 
    self.picture3.image = info[UIImagePickerControllerOriginalImage] as? UIImage 

} 

func imagePickerControllerDidCancel(picker: UIImagePickerController) { 

    picker.dismissViewControllerAnimated(false, completion:nil) 

} 

func imagePickerControllerDidCancel(picker2: UIImagePickerController) { 

    picker2.dismissViewControllerAnimated(false, completion:nil) 

} 

func imagePickerControllerDidCancel(picker3: UIImagePickerController) { 

    picker3.dismissViewControllerAnimated(false, completion:nil) 

} 

ответ

0

Не уверен, если я понял, что вам нужно, но то, что я предлагаю, что те, UIImageViews может быть в виде коллекции.

Делая это, единственным делегатом для сборщика изображения будет контроллером вида, что придерживается той точки зрения сбора изображений, и вы бы просто обновить выбранную ячейку с подобранным изображением

0

Вы даете тег каждому ImageView при создании ImageView и внутри этого метода

-(void)imagePickerController:(UIImagePickerController)picker didFinishPickingMediaWithInfo:(NSDictionary)info 

с помощью, если другое условие, которое вы можете использовать каждый ImageView отдельно.

+0

могли бы вы проверить мой код? – kimpro

+0

вы должны использовать эту функцию, о которой я упоминал без этого, вы не можете выполнить функцию, которую вы хотите, насколько я знаю, использовать тег с каждым представлением изображения –

0

Вы можете создать это как новый проект, чтобы не заниматься назначенными действиями, - или вы можете очистить действия и выходы в своем представлении и воссоздать в соответствии с новым кодом.

Создать 3 UIImageViews, picture1, picture2, picture3. Свяжите выходы в коде.

Создайте UIToolbar с 3 UIBarButtonItems. Установите теги элемента панели на 1,2,3, соответствующие изображениям изображения 1, картинке2, изображения 3.

Подключение точек для представлений изображений (picture1,2,3)

Connect захватывающего действия по всем трем пунктам кнопок. Те будут использовать одно и то же действие, не нужно повторять код, разница будет обнаружена тегом кнопки отправителя.

Следуйте за кодом, он сам объяснит. Он просто решает, какой UIImageView будет «активным» во время выбора изображения в соответствии с кнопкой щелчка, тогда делегат будет использовать этот вид изображения.

Сообщите нам, если не имеет смысла.

import UIKit 

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

@IBAction func picker(sender: UIBarButtonItem) { 
    imagePicker.allowsEditing = false 
    imagePicker.sourceType = .SavedPhotosAlbum 

    switch sender.tag { 
    case 2: 
     self.imageView = picture2 
    case 3: 
     self.imageView = picture3 
    default: 
     self.imageView = picture1 
    } 


    presentViewController(imagePicker, animated: true, completion: nil) 
} 

@IBOutlet weak var picture1: UIImageView! 
@IBOutlet weak var picture2: UIImageView! 
@IBOutlet weak var picture3: UIImageView! 

var imageView: UIImageView! 
let imagePicker = UIImagePickerController() 


override func viewDidLoad() { 
    super.viewDidLoad() 

    self.imagePicker.delegate = self 

} 

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     self.imageView.contentMode = .ScaleAspectFit 
     self.imageView.image = pickedImage 
    } 

    dismissViewControllerAnimated(true, completion: nil) 
} 

func imagePickerControllerDidCancel(picker: UIImagePickerController) { 
    dismissViewControllerAnimated(true, completion: nil) 
} 
} 

EDIT: Вот пример проекта я только что загрузил: https://github.com/smozgur/Multiple-Image-Picker

Смежные вопросы