0

距離とすべてを計算するための 3 つのタブがあるアプリケーションがあります。アプリを初めて起動したとき、3 番目のタブをクリックすると、ネットワーク呼び出しが発生します。次に、アプリケーションをバックグラウンドにします。アプリケーションがフォアグラウンドになったら、viewwillappear を呼び出して、ネットワーク呼び出しを再度行う必要があります。しかし、それは起こっていません。それはviewwillを呼び出していません。

アプリケーションがフォアグラウンドになったことを確認するにはどうすればよいですか。3番目のタブを確認してネットワークメソッドを呼び出す必要があります

私を助けてください

4

4 に答える 4

1

アプリケーションがフォアグラウンドになると、

- (void)applicationWillEnterForeground:(UIApplication *)application;

アプリのデリゲートが呼び出されます。

一時停止したすべてのタスクを次の場所で再開できます。

- (void)applicationDidBecomeActive:(UIApplication *)application;
于 2012-09-25T08:48:14.670 に答える
0
- (void)applicationDidEnterBackground:(UIApplication *)application {
           if(tab3){
          [viewController3 netWorkCallFromHere];
    } 

}

このアプローチでは、AppdelegateでBOOLtab3を宣言する必要があります。

3番目のviewControllerでtrueに設定し、別のviewControllerでfalseに設定します。

バックグラウンドから戻ると、フラグがチェックされ、それに応じて機能します。

于 2012-09-25T08:57:35.400 に答える
0
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    NSLog(@"%d",tabBar.selectedIndex);
    if (tabBar.selectedIndex == 2) {
        NSLog(@"Your work");
    }
}
于 2012-09-25T08:43:22.103 に答える
0
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    //save in NSUserDefaults (or wherever) which tab is currently active
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    // read from NSUserDefaults which tab was active before, 
    // and use an IF statement to control the further behavior
}
于 2012-09-25T08:48:01.953 に答える