2012-03-26 13 views
0

私は、アプリケーション起動時にユーザーに表示するデータを取得するサーバーを呼び出すアプリケーションを作成しています。サーバーへの呼び出しは同期呼び出しです。データの呼び出し時にUIActivityIndi​​catorViewを参照してください

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
    spinner.frame = CGRectMake(50, 50, 50, 50); 

    [self.tableView addSubview:spinner]; 
    [self.tableView bringSubviewToFront:spinner]; 

    singeltoneData *sing = [singeltoneData sharedInstance]; 
    firstTimeSearch = YES; 
    firstTimeSearchClick = YES; 
    NSNumber *num = [[NSNumber alloc]initWithInt:-1]; 
    [NSThread detachNewThreadSelector:@selector(spin:) toTarget:self withObject:nil]; 
    [self getData:num]; 

    filterCalls = [[sing.globalCallsDitionary objectForKey:@"Calls"]mutableCopy]; 
    allCalls = [[sing.globalCallsDitionary objectForKey:@"Calls"]mutableCopy]; 
    callsDetails = [[sing.globalCallsDitionary objectForKey:@"CallDetails"]mutableCopy]; 
    filteredCallsDetails = [[sing.globalCallsDitionary objectForKey:@"CallDetails"]mutableCopy]; 

#if defined(__IPHONE_5_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0 
    if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){ 
     [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"top.png"] forBarMetrics:UIBarMetricsDefault]; 
    } 
#endif 

    [self buildBar];  
    woman = [UIImage imageNamed:@"woman.png"]; 

} 

私のスピン関数は、私はこの

/************************************************************/ 
/*     Spinner         */ 
/************************************************************/  
- (void) spin:(id)data{ 
    [spinner startAnimating]; 

} 

のように見える横:コードであることをユーザにUIActivityIndi​​catorViewを示し、しかし、私は新しいスレッドでUIActivityIndi​​catorViewを活性化していますが、それを参照してください聞くカントまた、サーバーへのリフレッシュデータ呼び出しからそれを呼び出す:

- (void)activateActions:(id)sender { 
    [NSThread detachNewThreadSelector:@selector(spin:) toTarget:self withObject:nil]; 
    singeltoneData *sing = [[singeltoneData sharedInstance]autorelease]; 

    [allCalls removeAllObjects]; 
    [callsDetails removeAllObjects]; 
    [filterCalls removeAllObjects]; 
    [filteredCallsDetails removeAllObjects]; 
    NSNumber *num = [[NSNumber alloc]initWithInt:-1]; 
    [self getData:num]; 
    filterCalls = [[sing.globalCallsDitionary objectForKey:@"Calls"]mutableCopy]; 
    filteredCallsDetails = [[sing.globalCallsDitionary objectForKey:@"CallDetails"]mutableCopy]; 
    allCalls = [[sing.globalCallsDitionary objectForKey:@"Calls"]mutableCopy]; 
    callsDetails = [[sing.globalCallsDitionary objectForKey:@"CallDetails"]mutableCopy]; 
    [self.tableView reloadData]; 
} 

はまだ私はスピナー

任意のヘルプを参照してくださいいけませんか?

答えて

1
あなたの上に基づいて
[NSThread detachNewThreadSelector:@selector(spin:) toTarget:self withObject:nil]; 

- (void) spin:(id)data{ 
    [spinner startAnimating]; 

} 

は、すべてのUIの更新はあなたが活動が

をアニメーション表示されていない理由であるかもしれないメインthread..soに行われるべきで異なるthread..butにスピナーをアニメーション化しています
関連する問題