0

ローカル データベースにデータがある場合、アプリケーションを開始する前に最初にサーバーにアップロードするアプリがあります。アプリ Deleage にアップロード コードを記述しました。アップロード中に、アクティビティ インジケーターをアラートで表示する方法が必要です。通常は startAnimating と Stop を表示するのは簡単ですが、このシナリオではどうすればよいでしょうか?

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


     [self copyDatabaseIfNeeded];


     NSMutableArray *tempArray = [[NSMutableArray alloc] init];
     self.coffeeArray = tempArray;
     [tempArray release];

     [Coffee checkData:[self getDBPath]];


  int mytestcount=rowCount;
        NSLog(@"My Test ROw Count IS %d",mytestcount);


    if (mytestcount=0) {


    NSLog("No Data To Upload");

    }


   else {


    [Coffee getInitialDataToDisplay:[self getDBPath]];

    [self uploadData];
   }


   [self.window addSubview:[navigationController view]];

       [self.window makeKeyAndVisible];

       return YES;
      }
4

1 に答える 1

0

UIActivityIndicatorこの操作を表示するには、 appDelegatedidFinishLaunchingWithOptionsに配置する必要があります。別のスレッドでアップロードを実行し、操作が実行されている間はインジケーターが表示されるようにします。変更は次のようになります。

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

        [self copyDatabaseIfNeeded];
        NSMutableArray *tempArray = [[NSMutableArray alloc] init];
        self.coffeeArray = tempArray;
        [tempArray release];
        [Coffee checkData:[self getDBPath]];
        int mytestcount=rowCount;
        NSLog(@"My Test ROw Count IS %d",mytestcount);
        if (mytestcount=0) {
            NSLog("No Data To Upload");
        }
       else {
            [Coffee getInitialDataToDisplay:[self getDBPath]];
            //Set activity indicator here and perform uploading in different thread so that indicator is displayed as long as operation is carried out.  

           [self performSelector:@selector(uploadData) withObject:nil afterDelay:0];
       }
       [self.window addSubview:[navigationController view]];
       [self.window makeKeyAndVisible];
       return YES;
      }

UIActivityIndicatorアラートでを作成することは難しい作業ではありません。あなたは次のようにそれを行うことができます:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@" " message:@" " delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
UIActivityIndicatorView *progress= [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)];
progress.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
[alert addSubview:progress];
[progress startAnimating];   
[alert show];  

アラートは好きなようにカスタマイズできます。
お役に立てれば。

于 2012-09-06T06:02:53.817 に答える