Iphone 具有多个UIView的一个UIViewController

Iphone 具有多个UIView的一个UIViewController,iphone,objective-c,xcode,ipad,Iphone,Objective C,Xcode,Ipad,我正在创建一个包含一个UIViewController和多个UIView的应用程序。我有一个MainViewController,它下面有一个加载时显示的UIView,还有一些其他UIView都在MainWindow.xib中。如何从一个视图切换到下一个视图 更新: 谢谢你的回复 我已将MainViewController添加到我的appDelegate 完成启动时:[窗口添加子视图:[视图控制器视图]] 该视图控制器中有一个名为goToNextPage的函数 -(IBAction)goToNe

我正在创建一个包含一个UIViewController和多个UIView的应用程序。我有一个MainViewController,它下面有一个加载时显示的UIView,还有一些其他UIView都在MainWindow.xib中。如何从一个视图切换到下一个视图

更新:

谢谢你的回复

我已将MainViewController添加到我的appDelegate

完成启动时:
[窗口添加子视图:[视图控制器视图]]

该视图控制器中有一个名为goToNextPage的函数

-(IBAction)goToNextPage:(id)sender{

[self.view removeFromSuperview];
[self.view addSubview:tableOfContents];
}

在Interface Builder中,我将该视图控制器添加到MainWindow.xib中。在该视图控制器下,我有一个UIView(称为Cover),它在启动时作为子视图加载,还有另一个UIView(最终是多个),它自己命名为TableOfContents

我试图在这里发布我的MainWindow.xib的图片,但显然我的声誉不够高

UIView封面上有一个链接到goToNextPage功能的按钮

当我点击按钮时,页面变为空白,好像一个视图被成功删除,但下一个视图没有被加载

如何让goToNextPage函数将预加载的UIView封面与另一个名为TableOfContents的UIView进行切换

另一次编辑:

BookTest6AppDelegate.h:

#import <UIKit/UIKit.h>

@class MainViewController;

@interface BookTest6AppDelegate : NSObject <UIApplicationDelegate> {

    UIWindow *window;
    IBOutlet MainViewController *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet MainViewController *viewController;

@end
}

MainViewController.h

#import <UIKit/UIKit.h>

@class TableOfContents;

@interface MainViewController : UIViewController {

    IBOutlet TableOfContents *tableOfContents;
}

@property (nonatomic, retain) IBOutlet TableOfContents *tableOfContents;

-(IBAction)fGoToTableOfContentsController:(id)sender;
-(IBAction)fGoToNextPageController:(id)sender;

@end

我的UIView类基本上只是启动链接到MainViewController.h中定义的函数的按钮。

首先,您需要知道从一个切换到另一个的时间

然后你对你的主控制器说,并将子视图添加到主控制器。查看另一个视图

如果您提供更多信息或代码,我们可能会对您提供更多帮助:-)

祝你好运
文森特

编辑:

[self.view removeFromSuperview]; [self.view removeFromSuperview]; 这里您正在删除窗口视图。我认为这不是更好的办法 [ viewController.view removeFromSuperview ]; [viewController.view removeFromSuperview];:-)

它工作得更好吗

编辑: 编辑:韩,这是我的错。您需要删除控制器,并在应用程序委托中添加另一个控制器,而不是在主控制器中(您也可以这样做,但不能使用实际代码)。 您有两个选择: 1°)在应用程序代理中声明所有控制器。
2°)在一个主控制器中声明所有控制器。但是主控制器将在这里“控制”其他控制器。

如果您想再看一看,我修改了我的问题。ThanksI在另一次编辑中留下了我的大部分代码。根据您的示例,我必须启动另一个viewController对象。是这样吗?我想你不明白的是,当添加控制器的视图时,如何删除控制器。要添加他的视图,您需要执行以下操作:addSuview:controller.view,但要删除,您需要执行[controller.view removeFromSuperview](以及可能的[controller release if needed]),然后添加其他控制器视图^^ [self.view removeFromSuperview]; [ viewController.view removeFromSuperview ];