2011-02-01 11 views
0

私はカスタムmyViewControllerクラスを作成しました。これはデフォルトのビューと、サブビューへのIBOutlet(topleftView)を持っています。カスタムNIB/XIBでIBOutletを2回接続する必要があるのはなぜですか?

このmyViewController.xibをロードするためのカスタムNIB/XIBファイルを作成しました。 XIBファイル内では、ファイルの所有者をmyViewControllerに設定し、UIViewController IDクラスをmyViewControllerに設定しました。

私の質問は、サブビューのIBOutletからの参照をに描画しなければならない理由です。ファイル所有者とインタフェースビルダーのUIViewController?

カスタムNIB/XIBを作成しているのは初めてです。私は通常、MainWindowですべてをやっただけですが、アプリケーションが大きくなりすぎて物事を広げたくありません。

1つのIBOutletに対して同じnibファイルのUIViewControllerとFile Ownerの両方に複数の接続がない場合、私は_EXC_BAD_ACCESS_エラーでクラッシュします。 「私はmyViewControllerに ファイルの所有者を設定したXIBファイル内に...」

答えて

0

は、私はあなたがここで何をしているかわかりません。私はこれが問題のある場所だと思う。 XIBのトップレベルにはいくつのアイテムがありますか?それは単にFile's Owner、First Responser、Viewであるべきです。ここに別のコントローラオブジェクトがある場合、それはあなたの問題です。それを取り除く。

"...と同様 myViewControllerに のUIViewControllerのアイデンティティクラスを設定し、" この部分が正しい

を。カスタムUIViewControllerをXIBに接続するには、 "File's Owner"の時計を "Identity Inspector"に移動し、 "Class"フィールドの "Class Identity"を見てください。これを 'myViewController'(または名前を付けた名前)に設定します。

この時点で、セットアップした各コンセントのFile所有者からCtrl +ドラッグを1回実行する必要があります。

+0

ありがとうございます。これは私の問題であり、EXC_BAD_ACCESSの問題があった理由です。だから私はカスタムビューコントローラクラスを持っている場合、私はそれをクラスアイデンティティインスペクタのファイル所有者として設定する必要がありますか?私はまた、UIViewCOntrollerオブジェクトをXIBに、UIViewをその下に配置しなければならないと考えました。あなたが言ったように、XIBのコントローラを削除してUIViewをそのまま残して、すべて動作します! –

0

私の質問は、なぜ私が をフックし、 ファイルの所有者と インタフェースビルダでのUIViewControllerの両方にサブビューに IBOutletからの参照を描画しなければならないのでしょうか?

短い答え:あなたはしません。 File's OwnerのクラスをUIViewControllerのサブクラスのクラス名に設定すれば、設定されます。

関連する問題