1

StackOverflow と Google を検索しましたが、これまでのところ何も役に立ちませんでした。次のコードが機能しないのはなぜですか? コンソールに Notting が表示されます。viewDidLoad の NSLog はコンソールに表示されます...

ViewController.m 内

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    NSLog(@"applicationDidEnterBackground");
}

このプロジェクトは非常に簡単で、1 つのストーリーボード、1 つのビューコントローラー、iPad のみです。

4

1 に答える 1

2

ビュー コントローラーではなく、アプリケーション デリゲートのみがそのメソッドを呼び出します。オブジェクトは に準拠するUIApplicationDelegate必要があり、デリゲートとして設定する必要があります。MainMenu.xib で設定します。その xib の File's Owner オブジェクトは、アプリケーション自体です。アプリケーション デリゲートのクラスの別のオブジェクトを作成し、アプリケーションのdelegateアウトレットを接続します。

ただし、デフォルトの通知センターに登録することにより、任意のオブジェクトにアプリケーション イベントを通知できます。アプリケーション オブジェクトは、このメッセージをデリゲートに送信し、通知を投稿します。この場合、 に登録しUIApplicationDidEnterBackgroundNotificationます。

于 2013-03-10T19:05:15.647 に答える