私はセットアップが出口変数のボタンと使用方法から@IBOutlet必要スウィフトプログラミングに比較的新しく、ちょうど私が@IBActionコードの「送信者の引数を経由してUIButtonのテキストを変更することはできませんthis article on Stack Overflowから学んだんだけど、 。ルールの幅はどれくらいですか?どのような方法が「送信者」の議論に適用するのがOKであり、そうでないのですか?@UIActionコードSwiftで「送信者」引数を適切に使用する方法は?
答えて
@IBAction func buttonClicked(sender : AnyObject) {
println("Button was clicked", sender)
}
ここで、送信者は、ボタンの参照を意味します。あなたは、これはあなたが言及:)
送信者の引数は、ターゲット・アクション機構の一部であるに役立つことを願っています
などsender.backgroundColor
のような送信者を使用することにより、クリック上のボタンに異なる実行することができます。
通常、送信者パラメータはアクションメッセージを送信するコントロールを識別します(実際の送信者に代わる別のオブジェクトでも可能です)。この背後にある考え方は、はがきの返信先住所に似ています。ターゲットは送信者に問い合わせが必要な場合に詳細情報を問い合わせることができます。実際の送信オブジェクトが別のオブジェクトを送信者に置き換えた場合、そのオブジェクトを同じ方法で扱う必要があります。ターゲットで呼び出されます:たとえば、あなたがテキストフィールドを持っており、ユーザーがテキストを入力したときに、nameEnteredアクションメソッドが言う、送信者がsubstitudedことができるので
、誰かが別の送信者を使用することができることを保証するものではありませんIBOutletを使用してクラス内のボタンへの参照を所有している場合は、パラメータを手動で呼び出すと、呼び出すと思われるメソッドで使用する方が賢明かもしれませんボタン。あなたはこの方法が唯一の正しい送信者とリンクされていることを確認している場合
しかし、あなたが潜在的に任意のメソッドを呼び出すことができます。
私は、彼らがそのポストにあなたを参照しているかわからない
これは全く質問に答えません。 – rmaddy
ありがとう、私は完全に質問を誤解していた。私の答えを編集しました。 –
質問はできるだけ多くすること「とは何のアクション私が呼び出すことができる」ではないだろうが、「私は、送信者が本当にreleventボタンは本当に確信しています」それは正しいものではないので、リンクされています。具体的には何でも@IBOutlet
は必要ありません。ボタンに特別な権限を与えることはありません。これは、使用できるオブジェクトへのポインタです。
オブジェクトのメソッドを呼び出す場合は、オブジェクトへのポインタが必要ですが、へのsender
の属性は、IBAction
のコードと同じです。
sender
が正しいタイプであることを確認する必要があります。例えば
:正常に動作し、タップボタンを変更します
@IBAction func buttonPressed(sender: UIButton) {
sender.setTitle("New Title", forState: .Normal)
}
。どこにでも@IBOutlet
がある場合は問題ありません。変数はsender
で十分です。
いくつかのケースでは、あなたが最初の種類を確認する必要があります。その場合にはsender
ためAnyObject
種類、使用したいと思う:あなたは別のボタンのを変更したい場合は、今すぐ
@IBAction func buttonPressed(sender: AnyObject) {
if let button = sender as? UIButton {
button.setTitle("New Title", forState: .Normal)
}
}
は、タイトルを入力すると、@IBOutlet
が簡単になります。
@IBOutlet weak var someOtherButton: UIButton!
@IBAction func buttonPressed(sender: UIButton) {
someOtherButton.setTitle("New Title", forState: .Normal)
}
ただし、@IBOutlet
は必須ではありません(推奨)。任意の特別な力を持っていない@IBOutlet
を表示するには、Interface Builderでボタンをtag
値(例えば100)を設定し、このようなコードを使用することができます。
@IBAction func buttonPressed(sender: AnyObject) {
if let button = view.viewWithTag(100) as? UIButton {
button.setTitle("New Title", forState: .Normal)
}
}
私はここで使用してきた100数は任意ですビュー内の1つの項目の番号のみを使用する限り、任意の数にすることができます。
- 1. public manifest.jsonファイルでGCM送信者IDを使用する適切な方法
- 2. マルチキャスト送信者にBoost.asioを使用する方法は?
- 3. javascript組み込み引数を適切に使用する方法は?
- 4. javaメール送信者を使用してemalでリンクを送信する方法
- 5. SwiftでAWSTaskオブジェクトを使用する適切な方法は何ですか?
- 6. swift 4でstartMonitoringSignificantLocationChangesを使用する適切な方法は何ですか?
- 7. FCMデバイストークンをWebviewに送信する適切な方法
- 8. メッセージングアーキテクチャを使用してメッセージを送信者に送り返す方法は?
- 9. Swift拡張でラッパータイプの引数を使用する方法
- 10. FCMで送信者IDを使用して通知を受信する方法
- 11. SBTタスクにCLI引数を送信する方法は?
- 12. Extjs 5.0.1 JSON POSTリクエストを適切な方法で送信する方法
- 13. ASP.NET MVCを使用して適切なアクションをフォームに送信
- 14. larvelでcsrfトークンを使用せずに投稿者に送信する方法
- 15. GoogleマップでgetTile()関数を使用する適切な方法
- 16. bashの関数引数を適切に "転送"する方法はありますか?
- 17. 送信者名の代わりに送信者名を受信者名に設定する方法
- 18. 反応ネイティブで複数の受信者にメッセージを送信する方法
- 19. Jenkinsパイプラインで複数の受信者にポストビルド通知を送信する方法
- 20. C#でTableau Rest APIにRaw XMLを送信する適切な方法
- 21. デフォルト引数を持つメソッドに動的引数を送信する方法
- 22. init UIViewの引数の送信方法
- 23. ghc-modにhlint引数を渡す適切な方法?
- 24. グレッグ6で適切な送信方法(POST)xml
- 25. データモデルを適切にネストされた型で適切に書き込む方法、またはSwiftでCoreDataを使用する方法
- 26. ジェネリック型引数を取得する適切な方法
- 27. Delphiコードを使用してSMSを送信する方法
- 28. [R]:RDCOMClientとOutlook:複数の受信者やCCに送信する方法は?
- 29. 使用する方法モック適切
- 30. 各リクエストを適切なコントローラに送信
あなたの質問をあなたの行動方法で更新してください。 – rmaddy
あなたは間違っています。 'sender'引数でボタンの属性を更新するのはまったく問題ありません。あなたがリンクした質問に対する答えが間違っている(または少なくとも非常に混乱しています)。 – rmaddy