xib とファイルの所有者の間の接続を作成しようとすると、いくつかのタイプから選択できます。
- コンセント接続
- アクションコネクション
- コンセント回収接続
それらすべての違いは何ですか?
Outlet と Action は、ViewController がそのビューと対話する方法 (または接続/仲介) です。どちらも iOS を使い始めたばかりの頃は似ているかもしれませんが、目的は異なります。
アウトレット:ViewController talks to View by using Outlet
。View 内の任意のオブジェクト (UILabel、UIButton、UIImage、UIView など) は、ViewController への Outlet 接続を持つことができます。アウトレットは@property
ViewControllerのように使用されます。つまり、アウトレットを使用してオブジェクト
の何かを設定できます(UILabelのテキストの更新、UIViewの背景画像の設定など)。
- オブジェクトから何かを取得できます (UIStepper の現在の値、NSAttributedString の現在のフォント サイズなど)。
アクション: View pass on messages about view to ViewController by using Action
(または、技術用語で ViewControllerは、View 内Target
のいずれかと同じように設定さAction
れます)。アクションはMethod
ViewControllerにあります(ViewControllerにあるOutletとは異なり@property
ます)。オブジェクトに何か (any Event
) が発生するたびに (UIbutton がタップされるなど)、Action はメッセージを ViewController に渡します。アクション (またはアクション メソッド) は、メッセージを受信した後に何かを実行できます。
注: アクションは、UIControl の子オブジェクトによってのみ設定できます。UILabel、UIView などの Action を設定できないことを意味します。
Outlet または Action をどこで、いつ使用するか:
iOS と知り合った最初の数日間は、Action と Outlet とその使用法の間で混乱するのはまったく普通のことです。Outlet と Action の両方で実行できる小さなこと (ボタンのテキスト/タイトルの取得など) はほとんどありませんが、それ以外は大きく異なります。いずれかを使用する際は、上記の点に注意してください。
アウトレットは、コントロールのプロパティ、つまりラベルのテキストの色やテキストのサイズを変更する場合に使用されます。
トリガーを検出する場合、つまりボタンが押された場合にアクションが使用されます。
アウトレットは、クラス (通常はビュー コントローラー) に xib の子ビューへの参照を提供します。このアクションは、ユーザーがアクティブ化したときにコントロール (通常は xib の子ビューでもある) によって呼び出されるメソッドを提供します。
つまり、アウトレットは obj-c コードに IB 内のオブジェクトへのアクセスを提供します。アクションは xib コントロールに obj-c コードへのアクセスを与えます。
アウトレット接続:プロパティまたはインスタンス変数を接続し、現在のファイル所有者インスタンスをxibに形成します。このxibが逆シリアル化されると、ファイル所有者オブジェクトに接続されます。
アウトレットアクション:xibから所有者クラスへの指定されたアウトレット(ビュー)にターゲット/アクションを追加します
アウトレットコレクション:アウトレットに似ていますが、ビューの配列を単一のアウトレット変数に接続します