Xcode6+swift で storyboadを使わずに実装する
以前、一度だけObject-CでiOSアプリを作ったことがあるのですが、
久しぶりにやってみたらXcodeの使い方すら
すっかり忘れ去っていたので、最初からお勉強しなおすことにしました。
せっかくなので、swiftにしてみます。
今回は、会社でやっていたときと同じく、storyboadは使わず
xibファイルだけ使います。
1.プロジェクト作成
Single View Applicationを作成します。
↓こちらなどを参考に。
Xcode6でストーリーボードを使わないで開発する - kzy52's blog
2.xibファイルとUIViewControllerを作成する
xibとcontrollerを別々に作成したら、xibファイルを開いて
あとは、controllerのviewDidLoad()で、xibを指定してUIViewのインスタンスを作成し
controller自身のviewに追加します。
"xib-name"のところは、作成したxib名に置き換えます。
let view:UIView = UINib(nibName: "xib-name", bundle: nil).instantiateWithOwner(self, options: nil)[0] as UIView self.view.addSubview(view)
controllerから「Also create XIB file」にチェックを入れて、xibも一緒に作成した場合は
xibの[Connection inspector]-[Outlets]-[view]を削除すれば大丈夫です。
たったこれだけなのだけど、けっこう時間がかかってしまった。
色々調べていたときに、
・UIViewControllerを作るときに「Also create XIB file」にチェックを入れれば、自動的に紐付く
・xibとcontrollerを別々に作ってから、File's Ownerの指定と[Connections Inspector]-[Outlets]-[view]
を設定すれば紐付く
とか見かけたのですが、わたしの環境だとうまく行きませんでした。
エラーにはならないものの、何も表示されない。
→でも、controllerに上記と同じコードを追加すると
「Can't add self as subview」エラーが出るので、全然紐付いてないわけじゃないみたいなのに!!
ほんとはもっとスマートな方法があるのかも。