2016-05-29 19 views
0

私はこのような設定機能を持っている:swift 2のアクションの正しい構文は何ですか?

alert.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action:#selector(CICViewController.alertControllerBackgroundTapped(_:)))) 

をしかし、私は私の引数(のmyString)を設定しておりませんので、明らかにこの意志は私にエラーを与える:私はここに起動しようとしています

func alertControllerBackgroundTapped(myString: String) { 
     ///do something in here 
     }) 
    } 

正しく

これで正しい構文は何ですか?あなたはUITapGestureRecognizerにこのアクションを追加しているので

多くのおかげ

答えて

0

は、アクションが適切な署名を持っている必要があります - 単一引数の関数が何を返すUITapGestureRecognizerを服用していません。代わりにalertControllerBackgroundTappedのアクションとしてhandleTapを追加

func handleTap(recognizer: UITapGestureRecognizer) { 
    alertControllerBackgroundTapped("Hello!") 
} 

:あなたは文字列を受け取り、あなたの関数への呼び出しを行うことは自由です認識装置本体内部

alert.view.superview?.addGestureRecognizer(
    UITapGestureRecognizer(
     target: self 
    , action:#selector(CICViewController.handleTap(_:)) 
    ) 
) 
+0

を私からの引数を渡すしたいと思います –

+0

@GeorgeAsdaジェスチャーレコグナイザは、あなたの関数を呼び出すものなので、そのままの状態で動作させることはできません。 [ここでは、その制限を回避しようとするソリューションです](http://mookid.dk/oncode/archives/3815)(記事の最後にあります)。 – dasblinkenlight

+0

@dasblinkenlightそれは私が使用できるもののように見えます.... –

関連する問題