2017-06-25 15 views
0

私は素早く初心者ですので、簡単に教えてください。私は私の質問に具体的になるでしょう。ルートVCをプログラムで設定する

私はストーリーボードを削除しました(Swiftを使用してプログラムでUIを構築する方法を学びたい)。

次のコードは、私はまた、プロジェクトエクスプローラでViewController.swiftを持ってAppDelegate.swift

に配置されます。

まず、他のものを使用する方法はありますか?UINavigationController ..?またはUINavigationControllerを持つことは必須要件です..

必須ではない場合、どうすればいいですか?たとえば、スクロールビューを参照するにはどうすればよいですか?

第2に、Apple自身のガイドをさらに調査して、私もwindow?.isHidden = falseを使用することができると述べました...前の行を使用する場合とwindow?.makeKeyAndVisible() ..の違いがありますか?

申し訳ありません私の質問はプログラマチックに意味がないと私は初心者ですが、私が書いたりコピーしたコードを書く理由を理解しています。 ありがとうございます。

class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     // Override point for customization after application launch. 

     window = UIWindow(frame: UIScreen.main.bounds) 
     window?.makeKeyAndVisible() 
     window?.rootViewController = UINavigationController (rootViewController: ViewController()) 

     return true 
    } 

... 

} 

答えて

2

、その後、他の何でもUINavigationControllerを使用する方法がありますか..?またはUINavigationControllerを持つことは必須要件です..

UIViewControllerのサブクラスをルートビューコントローラとして使用できます。例えばUITabBarControllerUIPageViewControllerUIViewControllerUITableViewController ...

どのように私はちょうど例えばScrollViewにそれを参照することができますか..?

UIScrollViewをルートビューコントローラとして設定することはできません。ただし、UIScrollViewUIWindowのサブビューとして追加することはできます。ただし、VCを使用すると、異なるビューを管理する異なるクラスを使用してコードを管理しやすくなるため、これを行うことはお勧めしません。

前の行を使用する場合と、ウィンドウを使用する場合に違いがありますか?.makeKeyAndVisible()..?

あなたがmakeKeyAndVisibledocsを見ればはい、:

これは、現在のウィンドウを表示し、同レベル以下で他のすべてのウィンドウの前でそれを配置する便利なメソッドです。ウィンドウのみを表示する場合は、 isHiddenプロパティをfalseに変更します。

だから、makeKeyAndVisibleを呼び出すと、ウィンドウが「キーウィンドウ」になります。

hereによると、キーウィンドウはこのように振る舞う:

キーウィンドウがキーボードや他の非接触関連のイベントを受け取ります。一度に1つのウィンドウしかキーウィンドウではありません。

3
  1. ウインドウは、ビュー・コントローラを必要とします。 UINavigation Controllerである必要はありませんが、View Controllerである必要があります。すべてのアプリがナビゲーションコントローラから始まるわけではありません。実際、Xcodeが新しいプロジェクトであなたに提供するストーリーボードを見ることで、これを自分で見ることができます。それは単なるViewControllerです。代わりにScrollViewを使用できますか?スクロールビュー(UIView)をUIViewControllerに配置する場合は、できることを確認してください。

  2. ウィンドウを非表示にするだけで表示され、消えます。それをキーウィンドウにすることは、イベントを受け取るウィンドウになることを意味します。 iOSアプリではそれが重要だとは思わないかもしれませんが、iOSアプリは複数のウィンドウを持つことができます。アプリケーションを起動する場合は、表示されるウィンドウだけでなく、表示され、キーになるウィンドウを定義することをお勧めします。まず

関連する問題