[(id)self.parentViewController showSetup:m_tableID];
works because the reference to parentViewController
is automatically configured for you.
[GLVC showSetup:m_tableID];
should be _GLVC
or, preferably self.GLVC
and doesn't work because you never set the reference before you present the view controller. (previously it didn't work because you were using a class name, expecting it to be an instance variable name, due to bad naming, but it wasn't).
[(id)self.GLVC showSetup:m_tableID];
Is really the same as the above (in your new edited code).
The solution is to set GLVC
on the created view controller before you call presentViewController:animated:completion:
StartNewGameViewController *svc = [[StartNewGameViewController alloc] initWithNibName:@"StartNewGameViewController" bundle:nil];
svc.GLVC = self;
[self presentViewController:sec animated:YES completion:nil];