2016-03-20 3 views
0

J'ai déclaré le var imagePicked = 0 au sommet de ma classe. Maintenant, quand je change la valeur de imagePicked l'intérieur d'un IBAction comme ici:Modifier la valeur de var en dehors de la fonction

import UIKit 

classe ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

@IBOutlet weak var titelbild: UIButton! 
@IBOutlet weak var profilbild: UIButton! 


let imagePicker = UIImagePickerController() 
var imagePicked = 0 



override func viewDidLoad() { 
    super.viewDidLoad() 


    imagePicker.delegate = self 
// imagePicker.allowsEditing = false 
    // imagePicker.sourceType = .PhotoLibrary 


} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


@IBAction func titelbildtapped(sender: AnyObject) { 


// if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary){ 


    imagePicked == 1 

     imagePicker.allowsEditing = false 
     imagePicker.sourceType = .PhotoLibrary 


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



    // } 


} 


@IBAction func profilbildtapped(sender: AnyObject) { 


    imagePicked == 2 

     imagePicker.allowsEditing = false 
     imagePicker.sourceType = .PhotoLibrary 


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

    print ("output") 

} 





func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 


if imagePicked == 1 { 

    titelbild.setImage(pickedImage, forState: UIControlState.Normal) 
     // titelbild.imageView?.image = pickedImage 

} else if imagePicked == 2 { 
     profilbild.setImage(pickedImage, forState: .Normal)  } 

    } 
    dismissViewControllerAnimated(true, completion: nil) 
} 



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

}

la valeur de imagePicked semble être encore 0 au lieu de 2. Comment puis-je changer la valeur de celui-ci, de sorte qu'il n'est pas seulement changé dans la fonction que je l'ai changé?

+0

pouvez-vous montrer un échantillon complet de votre classe? parce que normalement votre code devrait fonctionner - excepté la fonction example devrait être quelque chose comme 'func example() {...}' ... –

+1

Avez-vous vraiment écrit imagePicked == 2 à la place si imagePicked = 2? – FredericP

+0

mettez une sortie 'print' dans votre fonction' profilebildtapped' pour voir si elle est réellement appelée quand vous tapez sur votre imageview ... –

Répondre

2

ok. le problème est dans vos fonctions titelbildtapped/profilbildtapped. il vous devez affecter les valeurs/avec un seul = au lieu de la double == qui vérifie l'égalité.

donc changer imagePicked == 1/imagePicked == 2-imagePicked = 1/imagePicked = 2 dans ces fonctions et il devrait fonctionner!

+0

pas de soucis. heureux d'avoir pu aider. :) –