Well through some trial and error I've worked out I don't need a third controller and I can call a switch method in the delegate which is pretty neat. Now my only problem is that it ignores the landscape orientation I've set.
Code:
- (void)switchView
{
if (instructionsViewController == nil)
{
[viewController.view removeFromSuperview];
[viewController release];
viewController = nil;
instructionsViewController = [[InstructionsViewController alloc]init];
[window addSubview:instructionsViewController.view];
}
else
{
[instructionsViewController.view removeFromSuperview];
[instructionsViewController release];
instructionsViewController = nil;
viewController = [[PianoTutorViewController alloc]init];
[window addSubview:viewController.view];
}
}
Not sure if code is elegant, but works apart from the landscape issue.