How to set time delay for displaying the alertview from one after another From an array?

102 views Asked by At

How to set time delay for displaying the alertview from one after another From an array? I have 5 alertview in an array.. Each alertview will Display after Some time duration.

     for (NSDictionary *temp in [RMUserDefaults userDetails].SharedFolders)
        {
          NSString *name = temp[@"Name"];          
          alert1= [[CustomUIAlertView alloc]initWithTitle:@"message" message:[NSString stringWithFormat:@"Message.", name] delegate:self cancelButtonTitle:@"CANCEL" otherButtonTitles:nil]]; 
          [alert1 show];
        }
2

There are 2 answers

0
Nirav Gadhiya On

Try this ......

-(void)test{
    [self showAlertWithIndex:0];
}

-(void)showAlertWithIndex:(NSInteger)index
{
    NSArray * arr = [RMUserDefaults userDetails].SharedFolders;
    NSString *name = arr[index][@"Name"];
    alert1= [[CustomUIAlertView alloc]initWithTitle:@"message" message:[NSString stringWithFormat:@"Message.", name] delegate:self cancelButtonTitle:@"CANCEL" otherButtonTitles:nil]];
    alert1.tag = index;
    [alert1 show];
    [self performSelector:@selector(dismissAlertView:) withObject:alert1 afterDelay:2.0f];
    // set delay in above line
}

-(void)dismissAlertView:(UIAlertView *)alert
{
    [alert dismissWithClickedButtonIndex:0 animated:YES];
    NSInteger index = alert.tag+1;

    NSArray * arr = [RMUserDefaults userDetails].SharedFolders;
    if (index < arr.count)
    {
        [self showAlertWithIndex:index];
    }
}

EDIT :

You will need to write following code in your alertview delegate

    NSInteger index = alert.tag+1;

    NSArray * arr = [CustomUIAlertView userDetails].SharedFolders;
    if (index < arr.count)
    {
        [self showAlertWithIndex:index];
    }
0
Striker On

Use dispatch_after

int i = 1;

for (NSDictionary *temp in [RMUserDefaults userDetails].SharedFolders) {
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, i * delaySeconds * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ 
        NSString *name = temp[@"Name"]; 
        alert1= [[CustomUIAlertView alloc]initWithTitle:@"message" message:[NSString stringWithFormat:@"Message.", name] delegate:self cancelButtonTitle:@"CANCEL" otherButtonTitles:nil]];
        [alert1 show];
    });

    i++;

}