2010-09-20 73 views
1

我創建一個應用程序與一個UIViewController和許多UIViews。我有一個MainViewController,它下面有一個UIView,它在加載時顯示,以及MainWindow.xib中的其他一些UIView。我如何才能從一個視圖切換到另一個視圖?一個UIViewController與許多UIViews

更新:

感謝您的回覆。

我已將MainViewController添加到我的appDelegate。

在FinishedLaunching:[window addSubview:[viewController view]];

該視圖控制器有一個功能叫goToNextPage。

-(IBAction)goToNextPage:(id)sender{ 

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

}

Interface Builder中我有一個視圖控制器加入的MainWindow.xib。在該視圖控制器下,我有一個UIView(稱爲Cover),它在啓動時加載,另一個名爲TableOfContents的UIView(最終是它自己)。

我試圖在這裏發佈我的MainWindow.xib的圖像,但顯然我的信譽不夠高。

UIView封面上有一個鏈接到goToNextPage函數的按鈕。

當我點擊按鈕時,頁面變爲空白,就好像一個視圖被成功刪除但下一個未被加載。

如何獲取goToNextPage函數來切換預先加載的UIView Cover與另一個名爲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 

BookTest6AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

// Override point for customization after application launch. 

[window addSubview:[viewController view]]; 
[window makeKeyAndVisible]; 

return YES; 

}

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 

MainViewController.m

#import "MainViewController.h" 
#import "TableOfContents.h" 

@implementation MainViewController 

@synthesize tableOfContents; 

-(IBAction)fGoToTableOfContentsController:(id)sender{ 

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

} 

-(IBAction)fGoToNextPageController:(id)sender{ 

} 

我UIView類基本上只是發起鏈接到MainViewController.h定義功能按鈕。

回答

2

首先你需要知道什麼時候從一個切換到另一個。

然後你說它到你的MainController和addSubView到mainController.view另一個視圖。

也許如果你給我們更多的信息或代碼,我們可以幫助你多一點:-)

好運
文森特

編輯:

[self.view removeFromSuperview];

在這裏,你要刪除的窗口視圖。我認爲這不是更好的方法^^嘗試

[ viewController.view removeFromSuperview ];
:-)

它工作更好嗎?編號: 編輯:韓,這是我的錯。您需要刪除控制器,並在應用程序委託中添加另一個控制器,而不是在mainController中(您也可以這樣做,但不會與您的實際代碼一起使用)。 您有兩種選擇: 1°)在您的應用程序委託中聲明所有控制器。 2°)將所有控制器聲明在一個主控制器中。但主控制器將在這裏「控制」其他人。

+0

感謝您的回覆。 – emachine 2010-09-20 20:23:05

+0

如果您想再看一次,我修改了我的問題。謝謝 – emachine 2010-09-20 21:05:24

+0

我用其中的大部分代碼留下了另一個編輯。從你的例子中,我將不得不啓動另一個viewController對象。那是對的嗎? – emachine 2010-09-20 21:46:38