2012-12-10 94 views
-1

我尝试了UIActivityIndi​​cator的概念。在第一个视图中,我有一个tableView加载了数据和相应的accessorybuttonton。所以当一个tableViewCell的accessorybutton被点击时,然后DetailsView被加载。同时我添加一个activityIndi​​cator,当accessorybutton被点击时。xcode中的UIActivityIndi​​cator?

- (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]; 
} 

直到这工作perfectly..I在DetailsView控件返回按钮,每当被压presentmodalViewController被解雇。

-(IBAction)btnBack 
{ 

    [self dismissModalViewControllerAnimated:NO]; 
} 

但现在的问题是,我可以看到presentmodalViewController越来越驳回但是开始的时候动画是accessorybutton挖掘仍然animating.So我怎么停止动画activityIndi​​cator当presentView被解雇,只显示的数据activityindicator prevoius视图。

+0

在您第一次的viewController的viewWillAppear中只需添加如果(![activityIndi​​cator isAnimating]) [activityIndi​​cator stopAnimating]; – Divya

+0

嗨@arizah在DetailsView类中添加activityIndecator而不是firstview,并将其设置为子视图,并且当您从url下载数据或者当您想要返回时,只需stopAnimation并移除或隐藏activityindecator ..其非常简单并且易于使用的家伙... –

回答

0

DetailsViewviewDidLoad方法只需添加activityIndi​​cator作为一个子视图和动画开始像波纹管..

- (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 
+0

我应该在哪里添加它? – Honey

+0

只是在btnBack方法伙计..也从超级看法删除看到我更新代码后1分钟 –

+0

@ParasJoshi:没有家伙,将无法正常工作。他需要关闭第一个视图的活动指标 –

-1

viewWillAppear的第一视图下面的代码添加[activityIndicator stopAnimating];

-(void)viewWillAppear:(BOOL)animated 
{ 
    if (activityIndicator) 
    { 
    [activityIndicator stopAnimating]; 
    } 
} 
+0

仍然有问题? –

+0

它不工作Mithun..What埃尔兹我需要修改? – Honey

+0

@arizah:你需要把它写在桌子上看看 –

0
在第一种观点写的viewWillAppear中方法

[activityIndicator hidesWhenStopped]; 

告诉我,无论是工作或没有!

快乐编码!!!!

+0

对不起,但它不工作 – Honey

0

使用下面的代码

- (void) tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath 

    { 

     detailView.Id=[empid text]; 

    [activityIndicator stopAnimating]; 

    [self presentModalViewController: detailView animated:NO]; 

     } 

或在您的firstView的viewWillDisappear

{ 

[activityIndicator stopAnimating]; 

[activityIndicator removeFromSuperView]; 

}

相关问题