很抱歉想问一个简单的问题。
我在主视图控制器(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
答案 0 :(得分:1)
调用removeFromSuperview
会导致第一个视图不再显示。然后在第一个视图的顶部添加第二个视图,但由于视图1仍未显示,因此用户无法看到任何一个视图。您应该保持第一个视图可见,并用第二个视图覆盖它,或者,最好有一个空白的superview,其中包含view1或view2作为子视图,具体取决于程序所需的视图。