2017-06-28 4 views
1

私は愚かな質問をするかもしれないと思うが、しばらく私を混乱させる。iOSプログラミング:クラスとインスタンス

私はiOS開発の初心者です。私は、人々が常にviewControllerのクラス内にコードを書くことをオンラインで見てきました。

しかし、C++での私の経験によれば、クラスは再利用のためのテンプレートに過ぎないと思います。初期化されたときにのみ使用できます。 作業を実行するものがインスタンスです。

私の質問は/ whoがアプリケーションでviewControllerインスタンスを作成するときでしょうか?

+1

コード内ですべてをやっているのですか、ストーリーボードを使用していますか? – rmaddy

+0

@rmaddyおそらくストーリーボードです。 OPがコード内のすべてを実行していた場合、VC自身がそれを実行するためにVCがどのようにインスタンス化されているかがわかります – Alexander

+0

これは非常に良い質問です。私は最初に私がコメントを投稿してから数秒後に発生した@Alexander Yeah、 – Alexander

答えて

3

あなたはテンプレートViewControllerを参照していると思います。たとえば、常に新しい単一ページのアプリケーションプロジェクトが付属しています。

あなたのアプリが起動し終わるが、何それは基本的にやっていることは次のようになると、「フードの下」に作成されています:、それはあなたがあなたを削除したい場合は、あなたがする必要があるものです実際には

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 = ViewController(); 
    return true 
} 

Leave the Main Interface info blank

そして、あなたワットの場合を次のようにあなたのプロジェクトの一般的な情報にメインインターフェイス情報をクリアに加えて、完全にプログラム的にストーリーボードと仕事別のカスタムViewControllerクラスを示すためにアリ、あなたは私が役立つことを願っ

let secondViewController = MyCustomViewController() 
// this line will place the MyCustomViewController instance on top of the current ViewController 
present(secondViewController, animated: true, completion: nil) 

のように別のViewControllerからそれを提示することができます!

+0

'Main Interface'はxib/nib/storyboardだけを指定していませんか?その後、VCのインスタンス化がそこから実行されます。私は今自分自身をチェックすることはできません – Alexander

+0

ええ、それはまさにそれです。ストーリーボードなしでViewControllerを実行したい場合に備えて、私はそれを指摘しました。それが空白でない場合、(少なくともXcode 8.3まで)動作しません。 –

関連する問題