我正在尝试UIActivityIndicator的概念。在firstView中我有一个tableView加载了数据和相应的配件。当一个tableViewCell的一个附件按钮被轻敲时,然后加载了DetailsView.Meanwhile我在添加一个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];
}
然后在DetailsView中根据它从firstView收到的empid加载一些数据
- (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被解除但是当配件按钮被点击时开始动画的activityindicator仍然是动画。所以当presentView被解除时如何停止动画activityIndicator并且仅显示prevoius视图的数据。 / p>
答案 0 :(得分:0)
DetailsView
方法的viewDidLoad
类中的只需添加activityIndicator作为子视图并开始像下面的动画一样..
- (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);
[activityIndicator startAnimating];
}
还有stopAnimating
当您的数据下载完成或失败时以及以下方法添加btnBack
方法或viewWillDisappear
时只需添加以下代码
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];///Add this line if you want to remove from superview
答案 1 :(得分:0)
在第一个视图的ViewWillAppear方法中写下代码
[activityIndicator hidesWhenStopped];
告诉我它是否有效!!!
快乐编码!!!!
答案 2 :(得分:0)
使用以下代码
- (void) tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
detailView.Id=[empid text];
[activityIndicator stopAnimating];
[self presentModalViewController: detailView animated:NO];
}
或在viewWillDisappear
的FirstView
{
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperView];
}
答案 3 :(得分:-1)
在第一个视图的viewWillAppear
中添加[activityIndicator stopAnimating];
-(void)viewWillAppear:(BOOL)animated
{
if (activityIndicator)
{
[activityIndicator stopAnimating];
}
}