UIButton addTargetはどのように機能しますか?

Atsuo Sakakihara

selfAnswerではなくGameViewControllerを指す理由を理解してみます

GameViewController.swift

class GameViewController: UIViewController {
    var gameplay = QuestionsController(colors: colors)

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.addSubview(gameplay.answersController.answers[0].button)
    }

    func didPressAnswerButton(sender: UIButton!) {
        sender.setTitle("Im from GameViewController class", forState: .Normal)
    }
}

QuestionsController.swift

class QuestionsController {
    var question: Question
    var answersController: AnswersController
}

AnswersController.swift

class AnswersController {
    var answers = [Answer]()

    func prepareAnswers() {
        let answer = Answer()
        answers.append(answer)
    }
}

Answer.swift

class Answer{
    let button: UIButton

    func prepareButton() {
        let answerButton = AnswerButton(type: .System)
        answerButton.addTarget(self, action: "didPressAnswerButton:", forControlEvents: .TouchUpInside)
        button = answerButton
    }

    func didPressAnswerButton(sender: UIButton!) {
        sender.setTitle("Im from Answer class", forState: .Normal)
    }
}
マイク・マーソック

addTarget:action:forControlEvents:ユーザーがボタンをタップしたときに、コントロール(answerButtonこの場合)に呼び出すメソッドと、それを呼び出すオブジェクト指示します。コードをより詳細に見る:

 answerButton.addTarget(self, action: "didPressAnswerButton:", forControlEvents: .TouchUpInside)
  • ユーザーがボタンをタップすると、TouchUpInsideイベントが発生します。その場合オブジェクトのanswerButtonメソッドを呼び出します。didPressAnswerButton:Answer
  • したがって、answerButtonこのTouchUpEventが発生したときに何をするを伝える必要があります。これを行うには、のaddTarget:action:forControlEventsメソッドを呼び出します。answerButton
  • self引数が告げるanswerButtonイベントについて通知するオブジェクトを何:それはターゲットこのコンテキストでselfは、はAnswerオブジェクトです。
  • "didPressAnswerButton:"引数はanswerButtonはタップイベントに応答して呼び出す必要がありますどのような方法を示しています。これは、アクション

これがObjective-C / Cocoaターゲットアクションメカニズムです。これは非常に一般的なパターンです。リンクされたドキュメントを読んで、その動作についてもう少し学ぶ価値があります。重要なのは、これがObjective-C *メッセージパッシングに基づいていることです。上記のコードで"didPressAnswerButton:"は、セレクターを示しています。セレクターは、ターゲット(selfとペアになっている場合、ユーザーがタップしたときにターゲットに「メッセージ」を送信する方法をanswerButtonに指示します。ボタン。

また、ストーリーボードを編集し、ボタンからView ControllerにCtrlキーを押しながらドラッグしてメソッドを選択する場合、これと同じメカニズムを使用してターゲット/アクションも設定することに注意してください。ビューコントローラアイコン(またはその他のアイコン)にドラッグしてターゲットオブジェクトを選択し、ポップアップでメソッド名をクリックするときにアクション/セレクタを選択します。

* Target-Actionは元々Objective-C用に設計されましたが、View Controllerを実装する一般的なケースでは、Swiftが同じように機能すると想定できます。ドキュメントを読むときは、Swiftがアクションに単純な文字列を使用するのに対し、Objective-Cはを使用することに注意してください@selector(...)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

UIButtonをクリックした場合、RxSwiftはどのように機能しますか?

分類Dev

UILabelの一部をUIButtonのように機能するようにしますか?

分類Dev

UIButton addTargetはiOS7では機能しませんが、IOS6では機能します

分類Dev

拡張機能のUIButtonにアクセスするにはどうすればよいですか?

分類Dev

UIButton addTarget Selector is not working

分類Dev

セグエの構造体でUIbuttonをどのように使用しますか

分類Dev

UIToolBarのUIButtonが機能していないようです

分類Dev

UIButtonへのaddSubView

分類Dev

UIButtonのiOSNSAttributedString

分類Dev

UIButtonのcontextMenuInteraction

分類Dev

NavigationItemのUIButton画像

分類Dev

How to addTarget to UIButton without sender

分類Dev

UIButton addTarget with parameters inside UIViewCollectionView

分類Dev

UIButton.tintColorが機能しないのはなぜですか?

分類Dev

UILabelを表示/非表示にする方法は?-UIButtonが機能しませんか?

分類Dev

UIViewへのuibutton.addTargetを含むSwiftクラスが機能しない

分類Dev

UIButtonのimageViewがUIButton全体を占有しないようにするにはどうすればよいですか?

分類Dev

非表示のUIButtonを表示するにはどうすればよいですか?

分類Dev

UIButtonのAddTargetが起動しない

分類Dev

uibuttonを追加して、UITableViewの下部に配置するにはどうすればよいですか?

分類Dev

'UIButton'から 'UIButton'への条件付きキャストは常に成功します

分類Dev

Swiftを使用してiOSでUIButtonの状態を変更するにはどうすればよいですか?

分類Dev

didSetを使用してUIButtonの.setTitleを更新するにはどうすればよいですか?

分類Dev

mpmovieplayercontrollerのサブビューとしてuibutton、uiimageを追加するにはどうすればよいですか?

分類Dev

画像付きのUIButtonの高さと幅をどのように設定しますか

分類Dev

UIButtonの違い!とUIButton?迅速なIOSで

分類Dev

UIButtonの下の影

分類Dev

UITableViewCellのUIButtonのNSIndexPath

分類Dev

UIScrollViewの中央のUIButton

Related 関連記事

  1. 1

    UIButtonをクリックした場合、RxSwiftはどのように機能しますか?

  2. 2

    UILabelの一部をUIButtonのように機能するようにしますか?

  3. 3

    UIButton addTargetはiOS7では機能しませんが、IOS6では機能します

  4. 4

    拡張機能のUIButtonにアクセスするにはどうすればよいですか?

  5. 5

    UIButton addTarget Selector is not working

  6. 6

    セグエの構造体でUIbuttonをどのように使用しますか

  7. 7

    UIToolBarのUIButtonが機能していないようです

  8. 8

    UIButtonへのaddSubView

  9. 9

    UIButtonのiOSNSAttributedString

  10. 10

    UIButtonのcontextMenuInteraction

  11. 11

    NavigationItemのUIButton画像

  12. 12

    How to addTarget to UIButton without sender

  13. 13

    UIButton addTarget with parameters inside UIViewCollectionView

  14. 14

    UIButton.tintColorが機能しないのはなぜですか?

  15. 15

    UILabelを表示/非表示にする方法は?-UIButtonが機能しませんか?

  16. 16

    UIViewへのuibutton.addTargetを含むSwiftクラスが機能しない

  17. 17

    UIButtonのimageViewがUIButton全体を占有しないようにするにはどうすればよいですか?

  18. 18

    非表示のUIButtonを表示するにはどうすればよいですか?

  19. 19

    UIButtonのAddTargetが起動しない

  20. 20

    uibuttonを追加して、UITableViewの下部に配置するにはどうすればよいですか?

  21. 21

    'UIButton'から 'UIButton'への条件付きキャストは常に成功します

  22. 22

    Swiftを使用してiOSでUIButtonの状態を変更するにはどうすればよいですか?

  23. 23

    didSetを使用してUIButtonの.setTitleを更新するにはどうすればよいですか?

  24. 24

    mpmovieplayercontrollerのサブビューとしてuibutton、uiimageを追加するにはどうすればよいですか?

  25. 25

    画像付きのUIButtonの高さと幅をどのように設定しますか

  26. 26

    UIButtonの違い!とUIButton?迅速なIOSで

  27. 27

    UIButtonの下の影

  28. 28

    UITableViewCellのUIButtonのNSIndexPath

  29. 29

    UIScrollViewの中央のUIButton

ホットタグ

アーカイブ