質問

私は iPad の開発に取り組み、急速に多くのことを学んでいますが、どこを見ても疑問があります。テンプレートを使用して Xcode で新しい SplitView アプリを作成すると、AppDelegate クラス、RootViewController クラス、および DetailViewController クラスが生成されます。それとともに、MainWinow.xib と DetailView.xib の .xib ファイルが作成されます。

  1. これら 5 つのファイルはどのように連携するのでしょうか?
  2. DetailView の nib ファイルはあるのに、RootView には存在しないのはなぜですか?
  3. MainWindow.xib ファイルをダブルクリックすると、「表示」ウィンドウが表示されずに Interface Builder が起動します。なぜですか?
  4. 以下はコードです 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 に追加する必要はありません。

これはあなたが欲しい文書です 読む

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top