1

xcode 4.3.1 でシンプルなシングル ビュー プログラムを作成しました。アプリケーションが初めて起動されたときと再開されたときにロードされているかどうかに応じて、ビューにさまざまなことをさせたいと思います。

誰でもこれを行うための最良の方法を教えてもらえますか?

appDelegate には viewController への参照がないため、AppDelegate didFinishLaunchingWithOptions メソッドから変数を渡すことができるかどうかわかりません。

ViewController がどこにもインスタンス化されていないように見える場合、AppDelegate はどのように ViewController と通信しますか?

ありがとう!

4

2 に答える 2

1

NSNotificationCenter を使用して、アプリケーションがいつフォアグラウンドに入ったかを知ることができます。その後、個々の VC を登録してイベントを処理できます。例えば:

- (void)loadView {
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(applicationWillEnterForeground)
                                             name:UIApplicationWillEnterForegroundNotification
                                           object:nil];
}

VC は、loadView (またはその他の方法) 中に登録します。次に、アプリがフォアグラウンドに入ると、メソッド

- (void)applicationWillEnterForeground;

と呼ばれます。dealloc または viewDidUnload で登録を解除することを忘れないでください。

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
于 2012-06-22T01:49:27.200 に答える
0

[application:didFinishLaunchingWithOptions:] を使用して、開始したばかりかどうかを判断できます。起動時に一度だけ呼び出されます。それをいくつかのフラグと [applicationWillEnterForeground:(UIApplication *)application] の設定と組み合わせて、起動したか、単にフォアグラウンドに戻っているかを判断できます。

于 2012-06-22T00:10:21.780 に答える