Как добавить индикатор активности при разборе? - PullRequest
0 голосов
/ 25 августа 2011

Я хочу добавить индикатор активности или MBProgressHUD, когда я нажимаю на строку представления таблицы, и исчезаю, когда закладывается таблица следующего представления.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 1 && indexPath.row == 0) {
    /*here add activity indiavtor*/

    iMapViewAppDelegate *appDelegate = (iMapViewAppDelegate *)[[UIApplication sharedApplication] delegate];
    NSString *requestString = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/directions/xml?origin=%@&destination=%@,OK&sensor=false",startField.text,endField.text]; 
    NSURL *url = [[NSURL alloc] initWithString:requestString];
    NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];

    //Initialize the delegate.
    xml1 *parser = [[xml1 alloc] init];

    //Set delegate
    [xmlParser setDelegate:parser];


    //Start parsing the XML file.
    BOOL success = [xmlParser parse];


    if(success){
        NSLog(@"No Errors");
        appDelegate.legAray=[parser.listofPoint copy];
        appDelegate.sAray=[parser.ListofSteps1 copy];
        arySteps=[[NSArray alloc]init];
        arySteps = [parser.ListofSteps1 arrayByAddingObjectsFromArray:parser.listofPoint];
        appDelegate.NoofRow=0;
        appDelegate.NoofRow=[arySteps count];
        NSLog(@"%d",appDelegate.NoofRow);
        NSLog(@"%@",arySteps);
        sObject=[[Sleg alloc]init];
        sObject=[appDelegate.legAray objectAtIndex:0];

    }
    else
        NSLog(@"Error Error Error!!!");


        controller= [TableView alloc];
        controller.arayStep=[arySteps copy];
        [controller initWithNibName:@"TableView" bundle:nil];
        [self.navigationController pushViewController:controller animated:YES];
        [controller release];
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

} код выше для выбора строки. В случае вызова этой функции затемдобавьте индикатор активности или MBProgressHUD и отпустите в следующем представлении.Как это сделать?

Ответы [ 2 ]

1 голос
/ 25 августа 2011

iRam11,
Просто внедрите этот код и спросите, есть ли у вас проблемы.
NextView.h
Объявить

UIAlertView *av;
UIActivityIndicatorView *actIndicator;

NextView.m

in viewWillAppear call this callWebService Method

-(void)callWebService {
av = [[UIAlertView alloc] initWithTitle:@"Loading..." message:@"Please wait..." delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
actIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge] autorelease];
[actIndicator setFrame:CGRectMake(120, 70, 40, 40)];
[actIndicator setHidesWhenStopped:YES];
[av addSubview:actIndicator];
[actIndicator startAnimating];
[av show];
[av release];


//Do you web service call
}

-(void)parserDidEndDocument:(NSXMLParser *)parser {
    // Do you tableview reload.
    [av dismissWithClickedButtonIndex:0 animated:YES];
    actIndicator.hidden = YES;
}
1 голос
/ 25 августа 2011
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 1 && indexPath.row == 0) 
{

    chkIndexPath = indexPath.row;    
    activity.hidden = FALSE;
    [activity startAnimating];

    [self performSelector:@selector(myFunction) withObject:nil afterDelay:0.0];
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
- (void)myFunction
{
  //your code. use chkIndexPath instead of indexPath.row
}

набор activity.hidden = TRUE; в viewwillAppear.

...