2016-04-26 20 views
0

如何设置从一个接一个显示alertview的时间延迟从一个数组?我在数组中有5个alertview。每个alertview都会在一段时间后显示。如何设置从一个接一个显示alertview的时间延迟来自一个数组?

 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]; 
     } 
+0

使用此代码时出现什么问题?请解释更多,所以我可以帮助你。 –

回答

0

试试这个......

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

编辑:

你需要写在你的alertview委托下面的代码

NSInteger index = alert.tag+1; 

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

使用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++; 

} 
相关问题