UIActivityIndicatorの概念を試しています。firstViewには、データと対応するアクセサリボタンがロードされたtableViewがあります。したがって、tableViewCellのアクセサリボタンをタップすると、DetailsViewがロードされます。一方、アクセサリボタンをタップすると、activityIndicatorを追加します。
- (void) tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
activityIndicator = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(143, 220, 37, 37)];
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
activityIndicator.color = [UIColor blackColor];
[self.view addSubview:activityIndicator];
[activityIndicator startAnimating];
activityIndicator.frame=CGRectMake(140, 195, 37, 37);
DetailsView *detailView= [[DetailsView alloc] initWithNibName:@"DetailsView" bundle:nil];
detailView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
UILabel *empid=(UILabel*)[cell viewWithTag:117];
detailView.Id=[empid text];
[self presentModalViewController: detailView animated:NO];
[detailView release];
}
次に、firstViewから受け取ったempidに基づいてDetailsViewで、いくつかのデータをロードします
- (void)viewDidLoad
{
activityIndicator = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(143, 220, 37, 37)];
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
activityIndicator.color = [UIColor blackColor];
[self.view addSubview:activityIndicator];
activityIndicator.frame=CGRectMake(140, 195, 37, 37);
////loads data from service url and parsing is done
[activityIndicator stopAnimating];
}
ここまでは完全に機能しています。DetailsViewに戻るボタンがあり、それが押されるたびにpresentmodalViewControllerが閉じられます。
-(IBAction)btnBack
{
[self dismissModalViewControllerAnimated:NO];
}
しかし今問題は、presentmodalViewControllerが閉じられているのを見ることができますが、accessorybuttonがタップされたときにアニメーションを開始したactivityindicatorはまだアニメーション化されているので、presentViewが閉じられたときにそのアニメーション化activityIndicatorを停止し、prevoiusビューのデータのみを表示するにはどうすればよいですか?