【iPhone】ViewControllerの切り替えができた!

相当苦しんでいたViewControllerの切り替えですが、ようやく任意のコントローラー内のViewを表示出来るようになりました。ボタンを押して切り替え、という仕組みはまだ実装していませんが、たぶん問題ないと思います。

なんのことはないです。InterfaceBuilderで、対象ViewControllerの、読み込みたいnibの設定をしていなかったため、コントローラ内のviewアウトレットが不正になっていてエラーが出ていただけでした。プロジェクトを作る際にビューベースを指定すると、何も設定せずにビューのnibを読み込むのですが、ただ単にViewControllerのインスタンスにnibの指定があったのに「クラス名をnibファイル名を同じにするとデフォルトで読み込んでくれている」と勘違いしていたのがそもそもの原因でした。
また、appAppDelegateに見えているviewControllerはあくまでも見えているだけで、ソースコード内できちんと定義していないとエラーが出ることも分かりました。そして、必ずこれを使わなければいけない、ということでもないようです。オリジナルのViewControllerのインスタンスを好きな名前で作り、そこからビューを呼び出せます。

基本的にXcodeおよびInterfaceBuilderは「何かを自動で設定してくれる」ことはなく、結局は全部自分で記述しなければいけない、というのが基本的なルールのようです。

とりあえず面倒くさいので、全ての画面(のコントローラ)をappAppDelegateクラス内で登録し、nibでも全ての接続を済ませた状態で、内部で画面モードみたいなフラグを持たせて、そのフラグでビューを入れ替える、みたいな仕組みで実装してみようと思っています。本当は必要な画面を都度読み出してやる方がメモリに優しいと思いますが、それはおいおいということで。

入り口に立ってから2週間。やっと一歩前進したという感じです。まだまだ高いハードルが目の前にありますが、頑張っていきたいと思います。

ちなみに、Tplcutterは大きなバグが見つかってしまい対処をしているところです。Cake対応とその他対応の2種類で異なる動きをするので、バグチェックも大変です。


“【iPhone】ViewControllerの切り替えができた!” への1件の返信

  1. まったく同じところで同じく二週間くらいハマっていました。
    大変参考になりました。

コメントは受け付けていません。