私はSwiftを学び、タップで私のメソッドを呼び出す必要があります、ここにコードがあります:
_var gestureRecognizer = UITapGestureRecognizer()
myView.addGestureRecognizer(gestureRecognizer)
gestureRecognizer.addTarget(self, action: Selector(dismiss(nil)))
_
これはエラーを返します-_Could not find an overload for init that accepts the supplied arguments
_
私もSelector("dismiss:nil")
とSelector("dismiss(nil)")
を試してみましたが、運が悪かったです。
ここで私が呼んでいるメソッド:
_func dismiss(completion: (() -> Void)!) {
self.dismissViewControllerAnimated(true, completion: completion)
}
_
メソッドの名前を文字列として使用するだけです。
gestureRecognizer.addTarget(self, action: "dismiss:")
編集:Swift 3.0では、次の構文を使用する必要があります。
gestureRecognizer.addTarget(self, action: #selector(dismiss(_:)))
セレクターで引数を渡しません。あなたはコロンがあるものがあることを表すだけです。さらに、セレクタタイプを使用する必要はまったくありません。文字列リテラルを渡すと、それはセレクターに変換されます。
gestureRecognizer.addTarget(self, action:"dismiss:")