Xcode4.2 IBOutletの接続 | iPhoneアプリ開発日誌 -ZERO-

iPhoneアプリ開発日誌 -ZERO-

プログラムの事を何も知らない素人が、iPhoneアプリを開発していく上で悩んだ点や勉強した点、記録を残していきます。

Xcode4.2以前は、ナビゲータエリアの横にあったドッグと呼ばれている所に
File's Ownerと呼ばれるものがあって、そこで青い線を引いたりして
IBOutletを接続していましたが、4.2に変わって、
Storyboardなるものが出現し、File's Ownerであったであろうものが
First ResponderになってしかもViewの下に配置されていたりして、
LabelやButtonなどの部品名の定義(?)の方法が分かりませんでしたが、
色々調べた結果をまとめてみたいと思います。

以前は、このようにインスペクターペインのコネクションズインスペクターに、
ヘッダファイルで定義した部品名が一覧で表示されていました。
$iPhoneアプリ開発日誌
(画像はもとまか日記Z様から引用、問題があれば削除しますので連絡をお願いします。)

しっかし、Xcode4.2ではヘッダファイルでの部品名定義から変わっていました。
今までは、
@interface ~~ViewController:UIViewController{
  IBOutlet UILabel *label;
}

と定義すればFile's Ownerで認識してくれて接続ができたわけですが、
4.2ではなぜか「 { } 」がついて無くて、なんでかなと思ってましたが、
定義の仕方自体変わっていたようです。

Single View Applicationで新規作成をし、ViewController.hを開くと、
@interface ViewController:UIViewController
と書いてあって、カッコが無くなってまして、、、。
結果から言うと、@interface~~の次の行に
@property(nonatomic,retain) IBOutlet UILabel *label;
と記述すればいいだけのようです。
言われてみれば、今までは2度手間だったのかもしれませんね。

これで、定義はできたわけですが、次はそれをどう繋ぐかですよね。
これはこれでまた理解するまでに時間が掛かりました。

storyboardを開き、ライブラリペインからLabelをViewに置いて下さい。
Labelを選択して(Labelの周りに白い丸が付いている状態)、
インスペクターペインのコネクションズインスペクターを開いて下さい。
そうすると、こんな感じになると思われます。
$iPhoneアプリ開発日誌
Referencing Outlets と Referencing Outlet Collectionsの2つがありますが、
今回は、Referencing Outletsの中にある New Referencing Outletsを使います。
名前の右にある丸をクリックして、VIewの上にあるLabelと接続します。
$iPhoneアプリ開発日誌
上のように引っ張ったら、マウスをドラッグをやめてください。
そうすると灰色のポップアップウィンドウでlabelとViewが表示されるので、
Labelをクリックすると、IBOutletの接続が完了です!


IBActionの方はあんまり変わらない方法で出来たので良かったんですが、
今回記事にした方は、なかなか分からなくて、開発を諦めかけたんです笑
でも、テンプレート調べたら分かるんじゃないか?ってことで、
調べてみてやってみて出来たので記事にしておきます。

※記事に関して、僕が誤解釈している箇所、間違った書き方をしている箇所、
アヤフヤな書き方をしている箇所、不明な箇所等があれば、
コメントの方をお願いします。開発を初めたばかりでまだまだ初心者なので、
ビシバシ指摘をして頂けると助かります。