1

我正在学习如何在 Xcode 中编写应用程序。我正在用一本书来指导我。不幸的是,这本书是用 Xcode 3 的指南编写的,而我正在使用 Xcode 4。

现在到目前为止还没有任何问题,但是这个项目不起作用,我根本不明白,因为它似乎很有意义。

该项目的目标是使用视图控制器在三个视图之间切换。

谁能看看我做错了什么?

这是整个项目:http ://www.2shared.com/file/CKO6ACzg/MultipleViews.html

PS:我知道现在视图将相互堆叠,并且当您单击新按钮时视图不会被清除。

4

1 回答 1

0

MultipleViewsViewController.h 应该是:

#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 应该是:

#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.
}

连接您的按钮(您在项目中尚未完成,这也可能是问题所在),您就完成了。

于 2012-03-16T18:52:48.283 回答