如何在从一个视图导航到另一个视图时放置进度条

时间:2013-11-20 06:57:55

标签: ios progress-bar

我搜索了很多次,但我找不到 当我点击它导航到另一个视图的单元格时,我有一些单元格的表视图 导航时我需要延迟一段时间,并且在这段时间内需要加载进度条

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *str_date=[data objectAtIndex:indexPath.row];
    [[NSUserDefaults standardUserDefaults] setObject:str_date forKey:@"str_date"];

    NSString *str_time=[time objectAtIndex:indexPath.row];
    [[NSUserDefaults standardUserDefaults] setObject:str_time forKey:@"str_time"];

    NSString *str_image=[images objectAtIndex:indexPath.row];
    [[NSUserDefaults standardUserDefaults] setObject:str_image forKey:@"str_image"];

    detailview *dv=[[detailview alloc]init];
    [self presentViewController:dv animated:YES completion:nil];
}

2 个答案:

答案 0 :(得分:1)

我不是100%肯定你在问什么,但如果你需要在加载时显示进度的东西,或者甚至只是阻止用户与微调器的交互,直到加载完成,你应该看看MBProgressHud:

https://github.com/jdg/MBProgressHUD

使用这个库的正确方法(从GitHub页面获取)是在主线程上初始化它,然后将你的操作中断到一个新的线程,如下所示:

[MBProgressHUD showHUDAddedTo:self.view animated:YES];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
    // Do something...
    dispatch_async(dispatch_get_main_queue(), ^{
        [MBProgressHUD hideHUDForView:self.view animated:YES];
    });
});

在您的情况下,因为您需要MBProgressHUD进行视图转换,所以您不希望使用self.view,因为当新视图被推到顶部时会导致错误。而是研究全局显示MBProgressHUD的方法(跨视图转换持久)。有一个如何执行此操作的示例here

答案 1 :(得分:0)

将以下文件添加到项目中。

并使用以下行加载进度条

[HUD showUIBlockingIndicatorWithText:@"Loading"];

并使用以下行隐藏进度条,

[HUD hideUIBlockingIndicator];

从这里获取HUD文件,

http://www.megafileupload.com/en/file/470802/MBProgressHUD-h.html

http://www.megafileupload.com/en/file/470804/MBProgressHUD-m.html

http://www.megafileupload.com/en/file/470800/HUD-h.html

http://www.megafileupload.com/en/file/470801/HUD-m.html

希望,它会帮助你。