Ios UIProgressview即使在主线程上第二次更新其进度时也不更新其进度
请不要将其标记为重复,因为类似的问题很少,但我的问题有点不同 当我导航到特定的UIViewController时,我无法第二次更新UIProgressview进度 场景:在我的应用程序主页屏幕中,我在“收藏”视图中有不同类别的动画视频列表。单击特定动画类别时,它将导航到动画详细信息(我使用了导航控制器)。在这个屏幕上,我还可以查看多个相关的动画视频,也可以选择下载视频。我已经使用UIProgress视图来显示下载的进度 在我第一次导航到详细屏幕并下载视频时,UIProgress视图工作正常,相应的下载进度。在同一屏幕上,我还可以下载另一个相关的视频,UIProgress view工作正常 现在的问题是当我导航回主页并选择动画视频的不同类别,然后再次导航到详细屏幕时。这一次当点击下载视频按钮时,视频开始下载,但这一次UIProgress视图不会更新其进度Ios UIProgressview即使在主线程上第二次更新其进度时也不更新其进度,ios,iphone,xcode6,ios-simulator,Ios,Iphone,Xcode6,Ios Simulator,请不要将其标记为重复,因为类似的问题很少,但我的问题有点不同 当我导航到特定的UIViewController时,我无法第二次更新UIProgressview进度 场景:在我的应用程序主页屏幕中,我在“收藏”视图中有不同类别的动画视频列表。单击特定动画类别时,它将导航到动画详细信息(我使用了导航控制器)。在这个屏幕上,我还可以查看多个相关的动画视频,也可以选择下载视频。我已经使用UIProgress视图来显示下载的进度 在我第一次导航到详细屏幕并下载视频时,UIProgress视图工作正常,相应
注意:我正在更新UIProgress视图在主线程上的进度
以下是我的代码:
#pragma mark- NSURLSession Delegate method
-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite{
double Progress = (double)totalBytesWritten / (double)totalBytesExpectedToWrite;
NSLog(@"Progressview progress : %f",Progress);
if (totalBytesExpectedToWrite == NSURLSessionTransferSizeUnknown) {
NSLog(@"Unknown transfer size");
}
else{
[self performSelectorOnMainThread:@selector(updateProgress:) withObject:[NSString stringWithFormat:@"%f",Progress] waitUntilDone:NO];
}
}
-(void)updateProgress:(id)progress {
float currentProgress = [progress floatValue];
[downloadProgress setProgress:currentProgress animated:YES];
[self.downloadProgress setNeedsDisplay];
}
请任何人帮帮我。谢谢 您是否使用NSLog检查updateProgress方法中的进度值?将日志记录添加到updateProgress,并确保downloadProgress不为零。甚至询问控件的当前值并记录。是的,我已经记录了进度值,它们不是零。它们介于0.1-1.0之间。您正在使用导航控制器。你是在用pop/push视图控制器来回切换吗?丽图:是的,我是在用pop/push视图控制器来回切换。