2016-05-07 15 views
-1

Ich habe ein kleines Problem. Nun möchte ich einen Button (buttonAclicked) haben, der ein Label zeigen kann und dann möchte ich andere Buttons haben, in diesem Fall habe ich nur einen gemacht (btnThree), der Zahlen eingeben kann, bis die Person einen Button drückt ("ok ") was die Tasten nicht innerhalb des Etiketts eingeben können.swift, wie man eine Taste in einer Switch-Anweisung

Jetzt ist mein Problem, dass, wenn ich den "buttonAclicked" drücke, um das Etikett anzuzeigen und dann einen anderen Knopf (btnThree) mit meiner switch-Anweisung zu drücken, stürzt ab. Ich weiß, dass die Schaltfläche (btnThree) funktioniert, aber ich kann es nicht in die switch-Anweisung passen.

ich kann es nicht bekommen, um die Linie zu drucken, damit ich weiß, dass es etwas mit der switch-Anweisung zu tun hat, ich habe auch versucht, die "sender.tag" in "UIButton()" und einige andere zu ändern Dinge.

class TriangleViewController : UIViewController { 

    @IBOutlet var btnThreeclicked : UIButton! 
    @IBOutlet var buttona : UIButton! 

     } 

    override func viewDidLoad() { 
        Open.target = self.revealViewController() 
        Open.action = Selector("revealToggle:") 




      let btnThree = UIButton() 
      btnThree.frame = CGRectMake(0.52 * view.bounds.width, 0.82 * view.bounds.height, 0.2 * view.bounds.width, 0.07 * view.bounds.height) //set frame 
      btnThree.setTitle("3", forState: .Normal) //set button title 
      btnThree.setTitleColor(UIColor.whiteColor(), forState: .Normal) //set button title color 
      btnThree.backgroundColor = UIColor.darkGrayColor() //set button background color 
      btnThree.tag = 3 // set button tag 
      btnThree.addTarget(self, action: "btnThreeclicked:", forControlEvents: .TouchUpInside) //add button action 
      self.view.addSubview(btnThree) //add button in view 



let buttona = UIButton() 
     buttona.frame = CGRectMake(0.772 * view.bounds.width, 0.32 * view.bounds.height, 22, 22) 
     buttona.layer.cornerRadius = 0.04 * view.bounds.width 
     buttona.backgroundColor = UIColor.greenColor() 
     buttona.setImage(UIImage(named:"A.png"), forState: .Normal) 
     buttona.addTarget(self, action: "buttonAclicked:", forControlEvents: .TouchUpInside) 
     self.view.addSubview(buttona) 
    } 




     @IBAction func buttonAclicked(sender: UIButton) 
    { 
      print("button A was pressed") 

       label.hidden = false 
       label.setNeedsDisplay() 




     switch sender.tag{ 
     case 3 : 

      print("buuuutttttooonnn") 
     break 



     default : 
      label.text = "0" 
    } 
    } 
+1

Eigentlich nach dem Code alles außer th e 'IBOutlet' ist außerhalb der Klasse ;-) – vadian

Antwort

0

Die Aktion in dieser Zeile:

btnThree.addTarget(self, action: "btnThreeclicked:", forControlEvents: .TouchUpInside) //add button action 

muss den Namen der Methode entsprechen, die Sie genannt werden sollen - die vermutlich ist diese Funktion:

@IBAction func buttonAclicked(sender: UIButton) 

so ändern die Zeile:

btnThree.addTarget(self, action: "buttonAclicked:", forControlEvents: .TouchUpInside) //add button action