2012-02-07 16 views
0

私はIOSの完全な初心者ですので、疑問があるかもしれませんが、私は木の木を見ることができません:IOS:事前に作成されたオブジェクトは、どのように自分自身を見つけることができますか?

私はXCode 4.2で新しいプロジェクトを開始したときに、すなわち、AppDelegate.mとViewController.mです。

私が理解する限り、それらはそれぞれ1つのクラスを宣言しています。アプリケーションを実行すると、AppDelegateとViewControllerという2つのオブジェクトがオペレーティングシステムによって事前にインスタンス化されます。

私はAppDelegateで特定のことをやっていて、ViewControllerのプロパティであるテキストラベルを更新したいと考えています。

しかし、ViewControllerオブジェクトを参照する方法はありません。

通常、ViewController内で、テキストラベルを self.MyTextLabel = @"myText"に更新できます。しかし、AppDelegateは "外部"であり、ViewControllerをインスタンス化していないので、利用可能なポインタはありません。

誰でも手伝いできますか?あなたがすることができ

self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease]; 
+0

あなたのプロジェクト構造がどのように見えるかはっきりしません。最近のテンプレートは 'application:didFinishLaunchingWithOptions:'でビューコントローラを作成しますが、古いテンプレートのように 'MainWindow.xib'から読み込んだときにコンセントにすることもできます。私たちが知ることのできないものを指し示すべきではありません。 –

+0

新しいプロジェクトを作成するときに、最新のXCode 4.2を使用しているすべての人が同一のファイルとテンプレート構造を取得すると仮定するのは間違っていますか? (私がそれに言及していない場合は、これはIOSアプリケーション、シングルビュープロジェクトです)。 – dhoenig

+0

私のXcode 4.2シングルビューアプリケーションは、アプリケーションデリゲートに次の行を生成します: 'self.viewController = [[MyViewController alloc] initWithNibName:@" MyViewController "bundle:nil];'。これはあなたが探しているView Controllerのインスタンスです。 –

答えて

0

非常に圧倒的ですが、あなたにここで魔法は起こっていないことを保証しましょう。すぐにアプリがあなたのAppDelegate.mが呼ばれるで-(BOOL) application:(UIApplication*) application didFinishLaunchingWithOptions:(NSDictionary*)launchOptionsを開始しているよう

UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

はあなたの main.m通常、このような行が含まれています。ここでは通常、View Controllerの作成を見つけるでしょう。それはそれは内に保持されたプロパティですを通して、あなたのアプリのデリゲートでは、ビューコントローラにアクセスすることができます。

self.viewController.myTextLabel = @"myText"; 

しかしmyTextLabelはXIBファイルで設定コンセントの場合、プロパティはのみ表示した後、実際のUILabelを指しますあなたのコントローラはXIBからロードされています。これは通常.viewプロパティにアクセスするか、ビューコントローラをUINavigationControllerのような別のビューコントローラに追加した直後に発生します。 (ただし、これはプロジェクトに選択したテンプレートによって異なります)。

+0

残念ながら、これは変更されていない空のメソッドです: ' - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //アプリケーション起動後のカスタマイズポイントをオーバーライドします。 return YES; } ' – dhoenig

+0

本当に興味深いですが、MainWindow.xibファイル、またはそれらの行に沿ったものはありますか? –

+0

xibファイルはありません。h、mファイル、ストーリーボードファイル、plist、pch、stringsなどのようなものがたくさんあります。 – dhoenig

1

のようなiOSアプリの構造に見えるラインが表示されるはずです

-(BOOL) application:(UIApplication*) application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 

:あなたはメソッド内のViewControllerオブジェクトの作成を見つけることができるのXcode 4.2で

関連する問題