2016-05-16 3 views
0

ツールバーの操作がうまくいかず、この質問が表示されていますが、回答がうまくいかないようです。私がこれまで行ってきたすべてが(Xcodeの7.3での)新しいテストプロジェクトを作成し、次のようにViewControllerクラスを変更:UIBarButtonアクションが機能しません。

import UIKit 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     print("viewDidLoad") 

     let tb = UIToolbar() 

     let actionClear = #selector(ViewController.clearAction(_:)) 
     let clearButton = UIBarButtonItem(barButtonSystemItem: .Trash, target: self, action: actionClear) 
     tb.items = [clearButton] 

     self.view.addSubview(tb) 
     tb.translatesAutoresizingMaskIntoConstraints = false 
     NSLayoutConstraint.activateConstraints([ 
      tb.bottomAnchor.constraintEqualToAnchor(self.view.bottomAnchor), 
      tb.centerXAnchor.constraintEqualToAnchor(self.view.centerXAnchor) 
      ]) 
    } 

    func clearAction (sender: AnyObject) { 
     print("clear") 
    } 

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

コードは、W/Oエラーをコンパイルし、ごみ箱アイコンが一番下に現れます(iPad上でテストする)が、アイコンに触れると決して実行されません。

私はあなたがUIBarButtonItemとカスタムビュー(UIButton)を使用する必要があることを示しているように見えたいくつかの(古い)の回答を見ましたが、UIBarButtonItemの目的はのためにアイテムを作成することですので、これは、少しクレイジーと思われますツールバー。私はここで何が欠けていますか?

答えて

0

ここで問題となっているのは、制約のためにbarButtonでの問題ではありません。 あなたのツールバーに幅の制約を追加します。

NSLayoutConstraint.activateConstraints([ 
       tb.bottomAnchor.constraintEqualToAnchor(self.view.bottomAnchor), 
       tb.centerXAnchor.constraintEqualToAnchor(self.view.centerXAnchor), 
       tb.widthAnchor.constraintEqualToConstant(self.view.bounds.width) 
       ]) 
+0

感謝を空の引数メソッドを使用しているとして、その後 をお試しください!ゴミ箱が画面に表示される可能性があるので、私は制約に間違いがないとは思っていませんでしたが、「アクティブ」ではありませんでした。私は物事は見えるが、触れることはできないと思う? –

-1

は、送信者を削除します。ANYOBJECTをclearAction方法であなたは、セレクタ方式でトリックをした、

func clearAction() { 
     print("clear") 
    } 
+0

これを試しましたが、助けにはなりませんでした。 –

関連する問題