Storyboardで作成したStaticCellsのCellのインスタンスを取得していじる

Storyboardで作成したStaticCellsのCellのインスタンスを取得していじるこんにちは。すっごい簡単なこと書きます。なぜなら簡単なことだけど、躓く人もいると思うから。ちなみに、ちょっと検索した所つまずいている人発見しました。ちなみに僕も最初つまずきました。。。わかればまぁ当たり前のことなんですけどね。多分、調べないでいきなりやるからつまずくんですね。

StaticCellsのセルのインスタンスを取得するには、InterfaceBuilderからピーッと線をhかmファイルまで引っ張れはUIViewなどと同じく参照が取れます。

せっかくなのでStaticCellsの便利さをアピールしながらこの辺りを説明してみたいと思います。

説明用のプロジェクトを作ってみました

1 プロジェクトを作成します。とりあえずSingle Window Applicationにしてみました。

2 UITableViewControllerを継承したテーブルビューコントローラを作成します。

ExampleViewController.png

3 UITableViewDataSource関連のコードをすべてコメントアウトします。使いません(使ってもいいですが)。

Delete.png

4 Storyboardにテーブルビューコントローラを追加します。遷移したあとの戻りが楽なのでナビゲーションコントローラに乗せました。

tableviewcontroller.png

5 Identity InspectorからCustom Classを選び、先ほど作成したExampleViewControllerを作成します

Change.png

6 Attributes InspectorのTableView > ContentからStatic Cellsを選択します。

Static-Cells.png

7 Static Cellsからピーとmファイルまで線を伸ばします。僕はmファイルに伸ばしていますが、hファイルに伸ばしてもほぼ同じです。

piii.png

8 セルのインスタンスを参照する変数ができました。

topCell.png

9 この変数をいろいろ操作すれば自由にセルをいじれます。

cells-instance.png

今回の例ではとりあえずviewDidLoad:の中でいじってみました。

10 9番のところで少し書きましたが、殆どコードを書かず画面の遷移が幾つもあるアプリが出来ました。

almost-no-code.png

うまくやれば、ほとんどコードを書かずに簡単なアプリなら出来ちゃいそうですね。

一応タイトルのインスタンスを取得する流れを入れていますが、それは持ちろんやる必要がなければやらなくてもOKです。その場合、全くコードを書かなくてもここまでできちゃうことになります(今回の例の場合、すべてをInterface Builder側で作成出来ます)。(・∀・)イイネ!!

UITableViewCellを継承したオリジナルのセルを作成していた場合、Interface Builder側のCustomClassに入れれば、そのクラスのセルのインスタンスが取得出来ます。ちなみに、今回これをStaticCellsでこれをやりたかった理由は、自作セルの自作メソッドを動かしたかったからでした。

普段は設定ビューをStoryboardにしてによく使いますねー。

Githubを使いたいという目的もあり、今回のコードをGithubにあげてみました。詰まった方は参考にしてみてください。デフォルトのプロジェクトにExampleViewControllerのみ追加して、ExampleViewControllerとStoryboardしかいじっていません。ExampleViewControllerの中の不要なコードは削除してあります。

Octocat
Static Cells – Github

Pocket
LINEで送る

You may also like...