//SwitchViewController.h
Code:
#import <UIKit/UIKit.h>
@class MainMenuViewController;
@class GlassRepairsViewController;
@interface SwitchViewController : UIViewController {
MainMenuViewController *mainMenuViewController;
GlassRepairsViewController *glassRepairsViewController;
}
@property (retain,nonatomic) MainMenuViewController *mainMenuViewController;
@property (retain,nonatomic) GlassRepairsViewController *glassRepairsViewController;
-(IBAction)goToGlassRepairs;
-(IBAction)goToMainMenu;
@end
//switch view controller m file
Code:
#import "SwitchViewController.h"
#import "MainMenuViewController.h"
#import "GlassRepairsViewController.h"
@implementation SwitchViewController
@synthesize MainMenuViewController;
@synthesize GlassRepairsViewController;
- (void)viewDidLoad {
MainMenuViewController *mainMenuController = [[MainMenuViewController alloc] initWithNibName:@"MainMenuView" bundle:nil];
self.mainMenuViewController = mainMenuController;
[self.view insertSubview:mainMenuController.view atIndex:0];
[mainMenuController release];
[super viewDidLoad];
}
//These IBActions are linked to buttons on the view that is linked to this class (swtichViewController) This works perfectly for showing different nibs
-(IBAction) goToGlassRepairs
{
if(self.glassRepairsViewController.view.superview == nil)
{
if(self.glassRepairsViewController == nil)
{
GlassRepairsViewController *glassRepairsController = [[GlassRepairsViewController alloc] initWithNibName:@"GlassRepairsView" bundle:nil];
self.GlassRepairsViewController =glassRepairsController;
[glassRepairsController release];
}
[mainMenuViewController.view removeFromSuperview];
[self.view insertSubview:glassRepairsViewController.view atIndex:0];
}
}
-(IBAction) goToMainMenu
{
if(self.mainMenuViewController.view.superview == nil)
{
if(self.mainMenuViewController == nil)
{
MainMenuViewController *mainMenuController = [[ MainMenuViewController alloc] initWithNibName:@"MainMenuView" bundle:nil];
self.mainMenuViewController = mainMenuController;
[mainMenuController release];
}
[glassRepairsViewController.view removeFromSuperview];
[self.view insertSubview:mainMenuViewController.view atIndex:0];
}
}
//MainMenuViewController.h
Code:
#import <UIKit/UIKit.h>
@class SwitchViewController;
@interface MainMenuViewController : UIViewController {
}
-(IBAction)goToGlass;
@end
//MainMenuViewController.m
Code:
#import "MainMenuViewController.h"
#import "SwitchViewController.h"
@implementation MainMenuViewController
-(IBAction)goToGlass
{
//This is where I want to call the goToGlassRepairs method that is inside SwitchViewController's class...
SwitchViewController *switch= (SwitchViewController *)self.superview;
[switch goToGlassRepairs];
}
SwitchViewController is the class that handles which nibs to display and remove.
MainMenu and glassRepairs are content views. However, MainMenu needs to access the methods in the switchviewcontroller class to allow navigation from the content view.