开发者

Why won't this simple view switching project work?

I'm in the process of learning how to write apps in Xcode. I'm using a book to guide me. Unfortunately the book is written with guides to Xcode 3 and I'm using Xcode 4.

Now so far there haven't been any problems, but this project doesn't work, and I simply don't get it, because it seems to make pretty good sense.

The project's goal is to use a view controll开发者_JAVA百科er to switch between three views.

Could anyone please take a look and see what I did wrong?

Here is the entire project: http://www.2shared.com/file/CKO6ACzg/MultipleViews.html

PS: I know that as it is now the views will be stacked on top off each other and that the view isn't being cleared when you click a new button.


MultipleViewsViewController.h should be:

#import <UIKit/UIKit.h>

@class FirstViewController;
@class SecondViewController;
@class ThirdViewController;

@interface MultipleViewsViewController : UIViewController {


    IBOutlet FirstViewController *firstViewController;
    IBOutlet SecondViewController *secondViewController;
    IBOutlet ThirdViewController *thirdViewController;

}

//@property (nonatomic, retain) FirstViewController *firstViewController;
//@property (nonatomic, retain) SecondViewController *secondViewController;
//@property (nonatomic, retain) ThirdViewController *thirdViewController;

-(IBAction)loadFirstView:(id)sender;
-(IBAction)loadSecondView:(id)sender;
-(IBAction)loadThirdView:(id)sender;

@end

MultipleViewsViewController.m should be:

#import "MultipleViewsViewController.h"

#import "FirstViewController.h"
#import "SecondViewController.h"
#import "ThirdViewController.h"

@implementation MultipleViewsViewController

//@synthesize firstViewController;
//@synthesize secondViewController;
//@synthesize thirdViewController;

-(IBAction)loadFirstView:(id)sender{
    [secondViewController.view removeFromSuperview];
    [thirdViewController.view removeFromSuperview];

    [self.view insertSubview:firstViewController.view atIndex:0];

}

-(IBAction)loadSecondView:(id)sender{
    [firstViewController.view removeFromSuperview];
    [thirdViewController.view removeFromSuperview];
    [self.view insertSubview:secondViewController.view atIndex:0];

}

-(IBAction)loadThirdView:(id)sender{
    [firstViewController.view removeFromSuperview];
    [secondViewController.view removeFromSuperview];
    [self.view insertSubview:thirdViewController.view atIndex:0];

}

-(void)dealloc{

    [firstViewController release];
    [secondViewController release];
    [thirdViewController release];

    [super dealloc];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    firstViewController = [[FirstViewController alloc] init];
    secondViewController = [[SecondViewController alloc] init];
    thirdViewController = [[ThirdViewController alloc] init];
    [self loadFirstView:nil];

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

Connect your buttons (which you haven't done in your project, which also might be the issue) and you're done.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜