1

私はシングルビューアプリケーションを持っています。myAppDelegate と myViewController があります。私が本から行った以前の学習プロジェクトでは、myViewController.h に次のものが含まれていました。

IBOutlet UILabel *textField;

iPhone でそのラベルにテキストを表示するには、myViewController.m に次のように記述します。

[textField setText:@"Hello World!"];

そしてそれは働いた!かわいい!しかし...どうすればmyAppDelegateから同じことを達成できますか? 上記と同じ行を myAppDelegate.m 内に配置すると、次のようになります。

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

エラーが表示されます: 宣言されていない識別子 'textField' の使用。

myAppDelegate から myViewController 内の同じラベルにテキストを出力できますか?

ありがとう!!

4

1 に答える 1

1

おそらく最良の答えは、「ビュー コントローラーが独自のビューを担当する必要があるため、しないでください」でしょう。

ただし、実際には、View Controller のプロパティの 1 つを変更するには、View Controller への参照が必要です。構文は のようなものになります[controller.textField setText:@"Hello World!"];が、独自の変数名をターゲットとして使用します。正確なステートメントは、didFinishLaunchingWithOptions:メソッドの現在の内容と、アプリのデリゲートとビュー コントローラーが互いにどのように接続されているかによって異なります。

于 2012-06-23T12:42:20.680 に答える