I am stuck in a tutorial, trying to switch views with a toolbar. My code builds fine and I put some alerts in to check the toolbar was working, and it is. But my subviews I am inserting are just not showing up at all. Can anybody help please?
Here is my main controller code..
MainViewController.h is
#import
@class FlavourPickerView;
@class ShakeView;
@class ResultsView;
@interface MainViewController : UIViewController {
IBOutlet FlavourPickerView *flavourPickerView;
IBOutlet ShakeView *shakeView;
IBOutlet ResultsView *resultsView;
}
@property (retain,nonatomic) FlavourPickerView *flavourPickerView;
@property (retain,nonatomic) ShakeView *shakeView;
@property (retain,nonatomic) ResultsView *resultsView;
-(IBAction)loadFlavourPickerView:(id)sender;
-(IBAction)loadShakeView:(id)sender;
-(IBAction)loadResultsView:(id)sender;
-(void)clearView;
@end
and here is MainViewController.m
#import "MainViewController.h"
#import "FlavourPickerView.h"
#import "ShakeView.h"
#import "ResultsView.h"
@implementation MainViewController
@synthesize flavourPickerView;
@synthesize shakeView;
@synthesize resultsView;
-(IBAction)loadFlavourPickerView:(id)sender{
UIAlertView *alertDialog;
alertDialog = [[UIAlertView alloc]
initWithTitle:@"Flavour selected"
message:@"Seems to work"
delegate:nil
cancelButtonTitle:@"OK!"
otherButtonTitles:nil];
[alertDialog show];
[alertDialog release];
[self clearView];
[self.view insertSubview:flavourPickerView.view atIndex:10];
}
-(IBAction)loadShakeView:(id)sender{
UIAlertView *alertDialog;
alertDialog = [[UIAlertView alloc]
initWithTitle:@"Shaker selected"
message:@"Seems to work"
delegate:nil
cancelButtonTitle:@"OK!"
otherButtonTitles:nil];
[alertDialog show];
[alertDialog release];
[self clearView];
[self.view insertSubview:shakeView.view atIndex:0];
}
-(IBAction)loadResultsView:(id)sender{
UIAlertView *alertDialog;
alertDialog = [[UIAlertView alloc]
initWithTitle:@"Results selected"
message:@"Seems to work"
delegate:nil
cancelButtonTitle:@"OK!"
otherButtonTitles:nil];
[alertDialog show];
[alertDialog release];
[self clearView];
[self.view insertSubview:resultsView.view atIndex:0];
}
-(void)clearView{
if(flavourPickerView.view.superview){
[flavourPickerView.view removeFromSuperview];
}else if(shakeView.view.superview){
[shakeView.view removeFromSuperview];
}else{
[resultsView.view removeFromSuperview];
}
}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[self loadFlavourPickerView:nil];
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[flavourPickerView release];
[shakeView release];
[resultsView release];
[super dealloc];
}
@end
and here is an example of one of the other views, starting with FlavourPickerView.h
#import
@interface FlavourPickerView : UIViewController {
}
@end
and FlavourPickerView.m
#import "FlavourPickerView.h"
@implementation FlavourPickerView
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
There is also a nib for the flavourPickerView and I have added subviews into my mainView, with the Class set to FlavourPickerView and nib name is FlavourPickerView.xib.