2016-03-20 7 views
0

erklärte ich die var imagePicked = 0 an der Spitze meiner Klasse. Jetzt wenn ich den Wert von imagePicked ändern innerhalb eines IBAction wie hier:ändern Wert von var außerhalb der Funktion

import UIKit 

Klasse 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) 
} 

}

der Wert imagePicked zu sein scheint immer noch 0 statt 2. Wie kann ich den Wert ändern, so dass es nicht nur innerhalb der Funktion geändert wird?

+0

Können Sie ein komplettes Beispiel Ihrer Klasse zeigen? Ursache Normalerweise sollte der Code funktionieren - außer die Beispielfunktion sollte etwas wie 'func example() {...}' ... sein. –

+1

Hast du wirklich imagePicked == 2 anstatt imagePicked = 2 geschrieben? – FredericP

+0

legte eine 'print' Ausgabe in Ihre' profilbildtapped' Funktion, um zu sehen, ob es wirklich aufgerufen wird, wenn Sie auf Ihrem Imageview tippen ... –

Antwort

2

ok. Das Problem liegt in Ihren titelbildtapped/profilbildtapped Funktionen. dort müssen Sie die Werte/mit einem einzigen = statt Doppel ==, die auf Gleichheit prüft zuweisen.

so ändern imagePicked == 1/imagePicked == 2-imagePicked = 1/imagePicked = 2 in diesen Funktionen und es sollte funktionieren!

+0

keine Sorgen. froh, dass ich helfen konnte. :) –