OGeek|极客世界-中国程序员成长平台

标题: iphone - UIAlertView 不关闭 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 14:46
标题: iphone - UIAlertView 不关闭

我在按钮单击或 (IBAction) 中使用以下内容

- (IBAction)HistoryBtnid)sender {
   self startReport];
   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        //============================   
          so some long processing code         
        //============================            
        [self stopReport];
   });
}

在哪里

-(void) startReport
{
    alert = [[UIAlertView alloc] initWithTitle"Generating PDF" message" " delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
    UIActivityIndicatorView *progress= [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)];
    progress.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
    [alert addSubview:progress];
    [alert setDelegate:self];
    [progress startAnimating];

    [alert show];
}

-(void) stopReport
{
    NSLog(@"  Stop Called  ");
    [self.alert dismissWithClickedButtonIndex:0 animated:NO];
    self.alert = nil;

    NSLog(@"  Stop Called  ");
}

问题是 AlertView 弹出窗口,我可以看到按钮工作,然后调用 StopReport 但 AlertView 停留在那里我怎样才能让 AlertView 消失

提前致谢



Best Answer-推荐答案


您必须只在主线程上使用 UI。

 - (IBAction)HistoryBtnid)sender {
   self startReport];
   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        //============================   
          so some long processing code         
        //============================      
        dispatch_async(dispatch_get_main_queue(), ^{
            [self stopReport];
        });
   });
}

关于iphone - UIAlertView 不关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485990/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4