Cocoa / iPad插入新视图......我做错了什么

时间:2011-05-09 19:25:38

标签: cocoa-touch uiview

很抱歉想问一个简单的问题。

我在主视图控制器(TestViewController)中加载了我的初始视图。计划是用另一个控制器(PageOneViewController)的视图替换该视图。两个视图都位于相同的Nib中,但链接到各自控制器中的插座。

在运行程序时,我按下按钮,视图消失,但没有任何内容取代它。我一定是误解了一些东西。根据我的理解,它应该工作。我做错了什么?

@class PageOneViewController;

@interface TestViewController : UIViewController {

}

- (void) addPageOne;
- (IBAction) pressButton:(id)sender;

@end

...

#import "TestViewController.h"
#import "PageOneViewController.h"


@implementation TestViewController

- (IBAction)pressButton:(id)sender  {

 [self addPageOne];

}

- (void) addPageOne {

 PageOneViewController *pageOne = [PageOneViewController alloc];
 [self.view removeFromSuperview];
 [self.view insertSubview:pageOne.view atIndex:0]; 
 [pageOne release];   

}

- (void)dealloc
{...

...

@interface PageOneViewController : UIViewController {

IBOutlet UIView *view;

}

@property (nonatomic, retain) UIView *view;

@end

...

#import "PageOneViewController.h"

@implementation PageOneViewController

@synthesize view;

@end

1 个答案:

答案 0 :(得分:1)

调用removeFromSuperview会导致第一个视图不再显示。然后在第一个视图的顶部添加第二个视图,但由于视图1仍未显示,因此用户无法看到任何一个视图。您应该保持第一个视图可见,并用第二个视图覆盖它,或者,最好有一个空白的superview,其中包含view1或view2作为子视图,具体取决于程序所需的视图。