2011-10-04 3 views
0

簡単な質問でMVCでのViewControllerは、 XCodeの

は私が遅くXCodeをオフに手を染めてきたと私はそれの核心を取得しながら、一つのこと、私が見ることができない、ビューコントローラを理解しようとしていますView Controllerクラスオブジェクトがインスタンス化される場所です。本質的にはクラスであるため、メッセージを送信できるようにオブジェクトをインスタンス化する必要があります。

私は頭が傷ついています。

ありがとうございます!

答えて

0

表示する必要があるときはいつでも、インスタンス化されます。あなたによって。

たとえば、ボタンを押すとナビゲーションスタックに新しいビューを表示する場合は、

-(IBAction)buttonClicked:(id)sender{ 
    /* Create VC here */ 
    YourViewController *controller = [[YourViewController alloc]initWithNibName:@"ViewName"]; 

    /* Push */ 
    [self.navigationController pushViewController:controller animated:YES]; 

    /* Let go since you don't have control over it anymore. */ 
    [controller release]; 
} 

私は、多くの場合、メモリの使用を避けるために、ほとんどの状況でメモリにインスタンスを保持するのではなく、これを行う方が一般に良いと思います。

(現在、iOS5がNDAから外れていると仮定していますが、そのほとんどが今日発表されています)、XcodeでStoryboardingを使用すると、すべてこれを処理できます。ビューコントローラは、それにインスタンス化され

0

があることinit関数指定イニシャライザです以下:あなたはおそらくリンゴ例またはあなたが持っているかもしれませんを通じて、あなたが見てきた他のソースコードの一部で指摘しているうよう

-(id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil 
{ 
    if((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) 
    { 
     // Custom initialization 
    } 
    return self; 
} 

MyViewController* viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; 

これは、ビューコントローラがインスタンス化される場所/時刻です。ビューコントローラには、ビューと呼ばれるUIView型のメンバオブジェクトがあります。これは、このビューがウィンドウに追加されるか、このビューが離れていることを表示します。 ビューコントローラは、このビューに関連するメッセージを処理するために作成されます。それはすべてhereの綴りです。