2016-05-07 9 views
-1

少し問題があります。今、私はラベルを表示することができるボタン(buttonAclicked)を持っていると私は他のボタンをしたい、この場合、私は1つ(btnThree) ")ので、ボタンの中にはラベルを入力できません。スイッチ内のボタンを取得する方法

私の問題は、ラベルを表示するために「buttonAclicked」を押してから、switch文を使用して別のボタン(btnThree)を押すとクラッシュすることです。私は、ボタン(btnThree)は動作しているが、私はそれをswitch文に収めることができないことを知っている。

私はそれがスイッチステートメントと何か関係があることを知っているので、私はラインを印刷することができません、私はまた "UIButton()"といくつかの "sender.tag"を変更しようとしましたもの。

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

実際にはコードに従って、th以外e 'IBOutlet'はクラスの外にあります;-) – vadian

答えて

0

この行のアクション:

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

と呼ばれる、あなたがしたいメソッドの名前と一致しなければなりません - おそらくこの関数である:

@IBAction func buttonAclicked(sender: UIButton) 

そうにラインを修正します:

btnThree.addTarget(self, action: "buttonAclicked:", forControlEvents: .TouchUpInside) //add button action 
関連する問題