SplitView iPhone テンプレートに RootView 用の nib ファイルがないのはなぜですか?
-
26-09-2019 - |
質問
私は iPad の開発に取り組み、急速に多くのことを学んでいますが、どこを見ても疑問があります。テンプレートを使用して Xcode で新しい SplitView アプリを作成すると、AppDelegate クラス、RootViewController クラス、および DetailViewController クラスが生成されます。それとともに、MainWinow.xib と DetailView.xib の .xib ファイルが作成されます。
- これら 5 つのファイルはどのように連携するのでしょうか?
- DetailView の nib ファイルはあるのに、RootView には存在しないのはなぜですか?
- MainWindow.xib ファイルをダブルクリックすると、「表示」ウィンドウが表示されずに Interface Builder が起動します。なぜですか?
以下はコードです
didFinishLaunchingWithOptions
AppDelegate クラス内のメソッド。SplitViewController をサブビューとして追加するのはなぜですか?(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after app launch rootViewController.managedObjectContext = self.managedObjectContext; // Add the split view controller's view to the window and display. [window addSubview:splitViewController.view]; [window makeKeyAndVisible]; return YES;
}
ご協力いただき誠にありがとうございました。まだまだ勉強することがたくさんあるので、もしこの質問がばかばかしいものでしたら申し訳ありません。これからもこれらの疑問について調査していきたいと思います!
解決
MainWinow.xib は、すべての Cocoa touch プロジェクトによって作成されるデフォルトのウィンドウです。これは、他のすべてのウィンドウが追加されるウィンドウであり、通常は AppDelegate 内で追加されます。
AppDelegate については、すでにご存知かと思います。これはアプリケーションの基本クラスです。
SplitViewController は UISplitViewController であり、IB を使用して MainWindow.xib に追加されますが、FinishLaunchingWithOptions を実行するまで MainView.xib の Window には追加されません。が実行されます。
デフォルトでは、SplitViewController は便宜上 2 つの ViewController を管理します。通常、これらは UITableView (テンプレートでは RootViewController と呼ばれます) と UIViewController (DetailViewController と呼ばれます) です。ただし、必要に応じてこれらを完全に削除することもできます。
RootViewController は単なる UITableViewController です。IBのSplitViewControllerに追加されます。
DetailViewController は UIViewController であり、MainWindow.xib の IB にも追加されます。
detailviewにペン先ファイルがあるのに、ルートビューではないのはなぜですか?
DetailView はメモリ管理を容易にするために nib ファイルからロードされると思います。しかし、それはプログラムで簡単に作成できたはずです。RootView は既に UISplitViewController に追加され初期化されているため、RootView 用のペン先はありません。xib ファイルから同じように簡単にロードすることもできます。
mainWindow.xibファイルをダブルクリックすると、インターフェイスビルダーは「ビュー」ウィンドウなしで起動します。なぜですか?
このデフォルトの iPad テンプレートは、他の iPhone テンプレートのような View と呼ばれる UIView ではなく、SplitViewController と呼ばれる UISplitViewController を使用します。
以下は、AppDelegateクラス内のDidFinishlaunchingWithoptionsメソッドのコードです。SplitViewControllerをサブビューとして追加するのはなぜですか?
SplitViewController は MainWindow.xib にのみ存在し、Window (MainWindow.xib) には追加されません。したがって、ここに追加されます。SplitViewController にネストされている場合は、AppDelegate に追加する必要はありません。
これはあなたが欲しい文書です 読む