- ラベル、ボタン、テキストフィールド、スイッチなどのGUI部品はUILabel、UIButton、UITextField、UISwitchといったクラスのインスタンスとして動作する
- GUI部品はストーリーボードのキャンバスにドラッグ&ドロップで配置できる
- GUI部品をプログラム上から制御するにはアシスタントエディタを使ってヘッダファイルまたは実装ファイルの
@interface
〜@end
の間にインターフェースセクションを接続する(CTRL+D&D) - アウトレット接続だと、そのオブジェクトを参照するためにプロパティ変数を挿入できる
- ボタンをタップしたら何か処理をするといったことをするにはGUI部品とメソッドをアクションで接続する
- Actionで接続すると、
@implementation
側にもメソッドが挿入されるので、そこで処理したい内容を記述する - 先にGUI部品をアウトレット接続をしておくとGUI部品自身のプロパティやメソッドにアクセスすることができる
- typeが
id
は挿入されるメソッドの引数sender
の型としてGUI部品の何にでも適用できる便利な型だが、GUI部品のそれぞれが持っているプロパティやメソッドにはアクセス出来ない。 - この引数
sender
は呼び出し元のGUI部品のインスタンスである - typeを置いたGUI部品の型にしておけば、メソッド内でsenderで呼び出し元のGUI部品にアクセスできる
- これを使えば、アウトレット接続はなくても呼び出し元のGUI部品にはアクセスできる
- ヘッダファイルにアウトレットやアクションを接続すると、他のクラスからもアクセスできるプロパティやメソッドになる
- 複数の部品を配列で扱うための接続である
- 最初の接続でConnectionに
Outlet Collection
を選んでプロパティを作成し、他の配列に含めたいGUI部品を同じプロパティにCTRL+D&D
で次々に接続していけばよい - 同じ種類のGUI部品でない場合はコレクションにできない
- 同じ種類のGUI部品から同じ処理をしたい
- ただ、部品ごとに少しだけ処理を変えたい
- Tagという識別子で判別して処理分岐をすることができる
- TagはGUI部品のAttribute InspectorのTag項目で番号付けをする
- プログラムからはsender.tagでTag番号を参照できる