2016-04-26 22 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++; 

} 
相關問題