2011-07-11 14 views
0

すべてのビューには独自のコントローラクラスがあります。私は一般的に、xibファイルはアプリケーションビュー/サブビューであることを知っています。私の質問は、MainWindow.xibがそれ自身のコントローラを持っているかどうかです。もしそうなら、どこでそれを見つけることができますか?MainWindow .xib - iPhone開発

答えて

1

xibファイルでは、ビューをView Controllerに関連付けることができます。

ここで、MainWindow.xibには、少なくともあなたのアプリのメインUIWindowが含まれています(少なくとも)。 UIWindowUIViewではなく、UIViewControllerは必要ありません。一方

は、あなたがMainWindow.xibの内側に好きな任意のオブジェクトを作成することができますので、あなたはまた、あなたが、その後 UIWindowインスタンスに追加し、その UIViewControllerを対応した、そこに UIViewを持つことができます。

追加のxibについて考えると、UIViewを定義し、さらにファイルの所有者タイプも指定します(通常UIViewController)。xibをロードすることでインスタンス化されます。

この意味で、MainWindow.xibはUIViewControllerを必要としませんが、依然としてFile's Ownerが必要です。これはUIApplicationシングルトンです。 UIApplicationからクラスを変更したり派生することはできないので、UIWindowインスタンスと対話する方法はUIApplicationの代理人を介して行います。

MainWindow.xibはinfo.plistファイルでも指定されているという点で特別な役割を果たします。あなたは(info.plistから対応するエントリを削除することによって)1人でなくてもかまいませんし、main.cからUIApplicationMainを呼び出すときに、単にアプリケーションの委任を宣言します。この場合、アプリケーションはUIWindowもxib機構を介してインスタンス化されません。アプリケーションの代理人のapplicationDidFinishLaunchingからUIWindowをインスタンス化する必要があります。

0

自分のコントローラーはありません。基本的にメインウィンドウです。アプリケーションが起動するとポップアップするものです。ユーザが使用するためにコントローラまたはビューコントローラを追加します。 App Delegateはコントローラーの一種ですが、正確ではありません。私たちはapplicationDidFinishLaunchingWithOptionsを任意のコントローラなどに上書きするので、appdelegateはmainwindow.xibのコントローラと考えることができます。