objective-c - iOS页面跳转到需要长时间加载的ViewController,页面会停留在当前视图等待目标视图加载完成后跳转,如何先跳转再加载?
ringa_lee
ringa_lee 2017-04-17 17:29:36
0
3
779

如题:
我再本页面点击cell想要跳转到目标页面:

当前页面:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
            MyGlViewController *glk = [[MyGlViewController alloc]init];
            NSString *fileName = [[NSBundle mainBundle]pathForResource:@"dddn" ofType:@"stl"];
            glk.curFileName = fileName;
            [self.navigationController pushViewController:glk animated:YES];
            
}  

目标页面:

- (void)viewDidLoad {
    [super viewDidLoad];
    glview = [[GLKView alloc]init];
    [self setView:glview];
    
    
    //此方法内为传过去一个文件地址,然后文本方式读取文件内容,内容,有大量循环存在,所以读取速度很慢,文件超过15MB以后等待时间就很明显了。。而ViewController又需要这些数据去渲染本页面(本页面继承于GLKViewController,用于渲染3d模型),故页面一直停留在上页面等待加载。
    [self modelParser:self.curFileName];
   
}

如上注释所述,在A界面push页面的时候,由于B页面需要先读取数据加载页面,所以视图会停留在A页面,造成一种系统假死的现象,(而我再Cell得点击方法内添加等待提示视图也是不直接显示的,二十等待B页面数据加载完后才显示),请问这种情况该如何处理?
如果表述的不清楚或者您认为的关键所在代码没贴出,请提醒。

ringa_lee
ringa_lee

ringa_lee

모든 응답(3)
大家讲道理

시간이 많이 걸리는 이 작업을 다른 스레드에 넣는 가장 쉬운 방법은 GCD의 dispatch_asyn 함수를 사용하는 것입니다

으아아아
左手右手慢动作

물론이죠. . . .
viewDidLoad에서 시간이 많이 걸리는 작업을 수행하지 마세요
willAppear 또는 didAppear에 넣어보세요. . .

刘奇

으아아아

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿