IOS pages jump to the ViewController that needs a long time to load. The page will stay in the current view and jump after the target view is loaded. How do I jump first and then load?

  ios, question

For example:
I click cell on this page again to jump to the target page:

Current page:

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

Target page:

- (void)viewDidLoad {
 [super viewDidLoad];
 glview = [[GLKView alloc]init];
 [self setView:glview];
 
 
 //In this method, a file address is passed and then the contents of the file are read in text mode. There are a lot of loops in the contents, so the reading speed is very slow, and the waiting time is obvious when the file exceeds 15MB.  .  However, the ViewController needs these data to render this page (this page is inherited from GLKViewController and used to render 3d models), so the page stays on the upper page waiting to be loaded.
 [self modelParser:self.curFileName];
 
 bracket

As mentioned in the note above, when pushing the page on the A interface, because the B page needs to read the data loading page first, the view will stay on the A page, causing a kind of Suspended animation system phenomenon (while I have to add the wait prompt view in the Cell click method, which is not displayed directly, and will not be displayed until the B page data is loaded 20 times). How should this situation be handled?
If the statement is unclear or the key code you think is not posted, please remind.

The simplest way to put this time-consuming task into another thread is to use GCD’s dispatch_asyn function

[self modelParser:self.curFileName];