-1

iOSのウィンドウとビューコントローラについて質問があります。私が今日取り組んでいるiOSプロジェクトのアプリデリゲートを見て、それが必要であることがわかりました...

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;

私のアプリで。

質問は次のとおりです。

  1. これは、navigationControllerがアプリのルートビューコントローラーであることを意味しますか?NavigationControllerはUIViewControllerのサブクラスですが、そのタスクはナビゲーションバーでナビゲーション機能を提供することだけですよね?

  2. self.windowとは何ですか?「view」と「viewController」の概念は理解していると思いますが、「window」が何であるかはよくわかりません... iPhoneには1つの画面がありますが、MacProには2つのモニターがあります。これらのウィンドウはiOSとOSXの観点からですか?

4

1 に答える 1

0
  1. おそらく。self.window.rootViewController は、ウィンドウのルート ビュー コントローラーを返します。この場合は、ストーリーボードからだと思います。この行が返されたオブジェクトをナビゲーション コントローラーにキャストするという事実は、それを 1 つにするわけではありません。それは、ストーリーボードにあるものは何でも (他に接続されていない左矢印を持つコントローラー) になります。キャストが正しいと仮定すると、これにより、navigationController.topViewController のようなものを記述でき、コンパイラーがそれについて文句を言うことはありません。ナビゲーション コントローラーの機能に関しては、ナビゲーション バーの機能を提供しますが、コンテンツ コントローラーのビューも表示します。topViewController のビューは起動時に表示されます。

  2. iOS のウィンドウは、UIView のサブクラスである UIWindow であるため、OS X のウィンドウと同じではありません。その機能の説明については、UIWindow クラス リファレンスの概要セクションを参照してください。

于 2013-02-06T16:33:50.657 に答える