2016-10-21 9 views
1

誰でもこのエラーで私を助けることができますか?それはかなり簡単であるべきようにわからない何それが求めてい...TapGestureRecognizerの適切な構文の使用

TapGestureRecognizer Syntax

override func viewDidLoad() { 
    super.viewDidLoad() 

    let tapStart = UITapGestureRecognizer(target: self, action:#selector(tapped(gesture:))) 
    self.view.addGestureRecognizer(tapStart) 

    func tapped(gesture: UITapGestureRecognizer){ 
     print("It actually worked") 
    } 
} 

私の最終目標は思わ:

私は、ユーザーが上の任意の場所にタップしたときに別のビューにセグエしたいです画面。私はTapGestureRecognizerを作成していますが、現在はメソッドとしてログに単純に出力していますので、動作しているかどうかを簡単に確認できます。

ありがとうございます!

+0

、あなたのcode.Just、あなたがit.Youを使用して道には何もありません。このようなあなたのコードを配置する必要があります。コードの画像はここでうまくいきません。読者はリンクをクリックしたくない。彼らはあなたのコードをコピーして貼り付けたい。彼らはあなたのコードを編集したい。外部画像は、いつでも消える可能性があり、将来の読者を助けるものではないため、二重ではありません。 – Andreas

+0

ああ!今私は知っている:P – Justin

+0

私の答えを確認するそれは構文エラーを自動修正する方法を説明します... – Joe

答えて

0

スウィフト3を使用している場合は、#selector(tapped(gesture:))を使用してみてください。スウィフト2を使用している場合、セレクタはおそらくtapped(_:)などです。

#selectorを使用すると、コンパイラは参照しているシンボルの存在を保証します。文字列を使用してコンパイラに文字列リテラルからセレクタを作成させると、このような警告が表示されます。 Selector("funcname")コンストラクタを使用する場合も同じ欠点があります。

+0

私はまだ 'アクション'で始まるでしょうか? – Justin

+0

はい。 'action:'は、 'UITapGestureRecognizer'のコンストラクタの一部であるパラメータ名です。このアクションのような – Andreas

+0

:#セレクタ(タップ(ジェスチャー:))。 – Justin

0

このコードを試してみてください。

スウィフト3でテスト注:構文はスウィフト3.

で変更することはできキーボード、その後のXcodeに F 機能+コントロール+オプション+コマンド+を保持することによって、自動修正あなたのために問題を解決します。

は、あなたの質問にコピー&ペーストコードする必要があります...

override func viewDidLoad() { 
    super.viewDidLoad() 

    let tapStart = UITapGestureRecognizer(target: self, action:#selector(tapped(gesture:))) 
    self.view.addGestureRecognizer(tapStart) 
    } 
    func tapped(gesture: UITapGestureRecognizer){ // func tapped(_:) this will works to 
     print("Your in Right track mate") 
    } 
+0

ありがとうジョー!私は、私の場合の問題は、それがviewDidLoad()の外にあったはずだったときに、ローカル関数(タップ)を使用していることを発見しました:) – Justin

+0

あなたは私のanswer.giveが好きなら、 – Joe